#include <stdio.h>
int main()
{
int input, counter,value;
int ABC[3];
counter = 0;
scanf("%d", &input);
switch (input)
{
case 1:
if (counter >=4)
{
printf("Error\n");
}
scanf("%d", &value);
ABC[counter]= value;
printf("ABC[%d] is %d \n", counter, ABC[counter]);
counter++;
main();
break;
case 2: //do anything
main();
break;
default:
printf("a is anything\n");
break;
}
return 0;
}
每次我选择case 1一个值时,我想放入数组ABC,直到数组ABC已满。我的问题是,我只能将这个程序值输入ABC [0]。有没有办法,记住计数器的价值,所以它不总是0?也许使用if语句?但是如何在这个程序中形成一个if语句,这个开头只有一次是真的吗?
但ABC也应该被允许有空格
答案 0 :(得分:0)
我认为在主要功能之外宣布反击将使其成为全球范围。
每次调用main()时都会这样;您将值重置为0.所以在主声明之前写入int counter = 0,在第2行。
答案 1 :(得分:0)
&#34; counter ++&#34;你正在重新打电话给你的&#34;主要&#34;函数,将您的计数器重新初始化为0.您应该使用循环:
int counter = 0;
do
{
// Your scanf goes here
switch(scanf_result)
{
// Add your case labels here
default: // Incorrect input? Let's start again!
continue;
};
counter++;
}
while(counter < 3);