我无法在此代码中使用(-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]);
}
答案 0 :(得分:2)
您需要删除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
循环。
我还更改了最后一个循环,以使用与上一循环中设置的j
进行比较的另一个变量i
。如果用户输入-999
,这会导致程序不输出未初始化的值。