你好,我正在尝试编写一个函数,从用户输入中扫描5个数字,并打印最小值,但是一旦运行它,它就会打印最后一个输入的数字:{
P plicpijule1981 New member 2023-01-12 #1 你好,我正在尝试编写一个函数,从用户输入中扫描5个数字,并打印最小值,但是一旦运行它,它就会打印最后一个输入的数字:{
A abuladli1982 New member 2023-01-12 #2 “你到底想做什么?# 包括int main(void){ int i,num,min,k; for(i = 0; i <5; i ){ //在这里将输入放在名为num的int中 scanf(“%d”,&num); //在这里将num分配给min for(k = 0; k <1; k ){ min = num; } //在这里检查num是否小于min,但num已经是min,所以它将始终为false。 如果(num <min){ min = num; } } printf(“%d”,min); 返回0;}”
“你到底想做什么?# 包括int main(void){ int i,num,min,k; for(i = 0; i <5; i ){ //在这里将输入放在名为num的int中 scanf(“%d”,&num); //在这里将num分配给min for(k = 0; k <1; k ){ min = num; } //在这里检查num是否小于min,但num已经是min,所以它将始终为false。 如果(num <min){ min = num; } } printf(“%d”,min); 返回0;}”
H hearkeyvatcomp1973 New member 2023-01-12 #3 也许这就是你想要的https://ideone.com/2ZEJXl。stackoverflow还有一些花哨的方法供你使用。
P placmagruibat1972 New member 2023-01-12 #5 #include int main(void) { int i, num, min,k; for (i=0;i<5;i ){ scanf("%d",
U uscycneadel1987 New member 2023-01-13 #6 在循环中使用 min 之前,你不应该初始化它吗?如果你也输入了负值,可能是像 min=0 或 min=-65535。
R ruppluntopa1983 New member 2023-01-13 #8 在您的代码中不变式“num < min”始终是假的,这就是为什么你的代码有错误行为的原因。只需删除这个没有用的循环和k,它就会工作。还要像其他人之前所述一样,用INT_MAX初始化min。
H hovildewet1976 New member 2023-01-13 #9 我不确定你想要做什么。但我建议将这些数字存储在数组中,只需遍历数组并选择最小数字。没有必要将最小值分配给INT_MAX,你可以假设数组中的第一个数字是最小值。