已关闭此问题为not reproducible or was caused by typos。它目前不接受回答。
此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
14天前关闭
Improve this question
我的作业是打印出10个数中最大的一个。
我想我已经确定了正确的结构,但是我的程序只输出最后插入的数字:D
#include <stdio.h>
int main()
{
printf("Give 10 numbers > \n");
int n;
int largest = 0;
for(int i=0; i<10; i++){
scanf("%d", &n);
}
if(n > largest){
largest = n;
}
printf("Your largest number is %d", largest);
return 0;
}
有什么需要帮忙的吗?
3条答案
按热度按时间a9wyjsp71#
问题是for循环在到达if语句之前运行了10次。在循环的前9次中,您只需在n中输入一个值,然后获得一个新的n值并覆盖它。尝试将if语句移到for循环中,这样它就可以测试n的每次迭代。
qybjjes12#
有什么需要帮忙的吗?
除了@Delta_G好答案:
错误的最大值,只有负输入
通过移动
>
测试修复代码后,如果所有输入值都为负值,则max将错误地报告为0。@克里斯各种方法来修复。
一种是用最负的
largest
初始化max
。高级问题
如果输入的值超出
int
范围、非数字、不完整等,该怎么办?改天再说吧
m4pnthwp3#
感谢各位的帮助!
我终于做对了,看来我还有很多东西要学:)