记住计数器的价值

时间:2014-12-10 19:34:08

标签: c

#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也应该被允许有空格

2 个答案:

答案 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);