如题所述
你的Input函数有问题啊
你只判断了max<score的情况,当你的score小于0的时候,没有处理,而且也没有返回
上面估计默认就当你返回0了,因此你最后的时候y=0,而且max是个局部变量,你每次比较x都是与0比较,并没有起到每次获取大值的目的。
main函数中,你应该先判断x是否小于0,然后调用Input
Input可以这样用:
y=y>Input(x)?y:Input(x);
其实不都不用使用Input函数,直接在main中就能实现
int main(){
int x,y;
printf("please input scores(-1 to break):");
y=0;
for(;;)
{
scanf("%d",&x);
if(x<0)
break;
y = y>x?y:x;
printf("%d已键入",x);
}
printf("最高成绩为%d",y);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2016-03-24
把 y=Input(x) 改成 y=Input(y,x);
把函数Input(int score)改为下面这个 并且写在main函数前
int Input(int y,int score)
{
if(y<score)
{
y=score;
}
return y;
}
把函数Input(int score)改为下面这个 并且写在main函数前
int Input(int y,int score)
{
if(y<score)
{
y=score;
}
return y;
}
第2个回答 2016-03-24
把input函数写在main函数前面,你的input函数没有声明追答
还有要把max定义成静态的变量
这个程序中max的值每一次都被重新赋值为0没有记录之前的最大值
追问其实把max变成静态就行了。谢谢你了,我粉你吧,以后有问题可以问你。
本回答被提问者采纳