**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答案。
这个问题是由一个打字错误或一个无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
5天前关闭。
Improve this question
“min”重复输出零而不是实际的最小数字。不确定我在这方面哪里出了问题。任何提示都会有帮助。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int marks,i=0,max,min,sum=0;
float avg;
for(i=0;i<2;i++)
{
printf("iNPUT marks %d:",i+1);
scanf("%d",&marks);
sum=sum+marks;
if (marks>max)
max=marks;
if(marks<min)
min=marks;
}
avg=sum/2;
printf("marks:%.2f\n",avg);
printf("max:%d\n",max);
printf("min:%d\n",min);
return 0;
}
2条答案
按热度按时间1l5u6lss1#
您忘记初始化
min
和max
。因此,当您再次比较
marks
这两个变量时,min
和max
的值是垃圾,调用 Undefined Behavior。更改此项:
更改为:
这些宏要求您包含
limits.h
库。完整示例:
对于输入1和2,给出:
1u4esq0p2#
您没有初始化
min
和max
。当您将mark
与这两个变量(包含垃圾)进行比较时,代码会调用未定义的行为。您也可以在第一次迭代期间更改初始化最小值和最大值的循环: