C语言中如何实现用户输入存入数组且不存储终止值
解决终止值被存入数组的问题
你当前代码的问题在于先把输入写入数组,再判断是否为终止值,导致-100.0这个终止值被提前存进了数组里。只需要调整读取和判断的顺序就能解决:先把输入读到临时变量里,确认不是终止值后,再存入数组。
修改后的代码:
printf("Enter temperatures or -100.0 to stop: "); // 用户输入提示 int i = 0; float input; // 用临时变量承接输入 while (1) { scanf("%f", &input); // 先读取输入到临时变量 if (input == -100.0) { // 判断是否为终止值,是则退出循环 break; } temp[i] = input; // 非终止值才存入数组 i++; }
额外提醒:
- 浮点数值比较时,若对精度要求较高,建议用差值的绝对值小于极小值来判断(比如
fabs(input + 100.0) < 1e-6),避免因浮点存储的精度误差导致判断失效。
内容的提问来源于stack exchange,提问作者user27803601
相关产品推荐
相关产品推荐

