我无法让 (-999) 在此代码中工作。我把它作为一个 if/break 语句以及一个 while 语句,但它似乎没有注册它。请帮忙!
编写一个简单的程序(演示数组的使用),要求用户输入数字和 继续输入数字,直到发生以下两种情况之一:
用户输入-999
输入的数字总数达到5
您的程序将根据上述任一条件停止请求新输入。一旦满足上述条件之一,程序将输出所有输入的数字。
见下面的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
#define QUANT 5
{
int number [QUANT], i = 0;
while (i < QUANT) {
for (i = 0; i < QUANT; i++)
scanf("%i", &number[i]);
if (number[i] == -999) {
break;
}
}
for (i = 0; i < QUANT; i++)
printf("Element %i: %i \n", i, number[i]);
}
最佳答案
您需要删除 while
循环,并把 break
for
里面的语句循环。
#define QUANT 5
int main()
{
int number [QUANT], i = 0, j = 0;
for (i = 0; i < QUANT; i++) {
scanf("%i", &number[i]);
if (number[i] == -999)
break;
}
for (j = 0; j < i; j++)
printf("Element %i: %i \n", j, number[j]);
return 0;
}
即使在您编写程序时,您可能已经注意到您包括两个比较 i < QUANT
,这有点奇怪。无论如何,break
语句只跳出 while
在 for
之后循环loop 已经完成循环。
我还更改了最终循环以使用另一个变量 j
它与 i
相比在上一个循环中设置。这会导致程序不输出未初始化的值,以防用户输入 -999
。 .
关于c - 数组和循环,Sentinel 不起作用(C 程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49740176/