gpt4 book ai didi

c - 当满足条件时,While 循环不会停止

转载 作者:行者123 更新时间:2023-11-30 16:56:01 25 4
gpt4 key购买 nike

我有一个 while 循环,允许用户输入由空格分隔的任意数量的数字,并且当用户输入 0 时,程序应该终止,同时向用户显示最大数字。 .

#include <stdio.h>

int main(){
float fResult[100], fMax;
int c = 1;
while (fResult[c] != 0){
scanf(" %f ", &fResult[c]);
if (fResult[c] > fMax){
fMax = fResult[c];
}
c = c + 1;
}
if (fResult[1]==0){
printf("empty sequence");
} else {
printf("%.3f ", fMax);
}
}

它工作正常,直到用户输入只有负数的序列。然后结果显示为0 .

例如,当用户输入-3 -4 -100 -5 0时,结果应该是-3 ,但我得到了 0 ,这在技术上是最大数量。但是,如果用户输入 0 , while 循环是否应该被忽略? ?

最佳答案

fMax初始化为读取的第一个值。无需将值保存在数组中。始终检查 scanf() 的返回值。

#include <stdio.h>
#include <stdlib.h>

int main(void) {
float f, fMax;

if (scanf("%f", &fMax) != 1) {
exit(EXIT_FAILURE);
}
if (fMax == 0.0) {
(void) printf("empty sequence\n");
} else {
for (;;) {
if (scanf("%f", &f) != 1) {
exit(EXIT_FAILURE);
}
if (f == 0.0) {
break;
}
if (f > fMax) {
fMax = f;
}
}
(void) printf("%.3f\n", fMax);
}
return 0;
}

关于c - 当满足条件时,While 循环不会停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40071039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com