C程序跳过用户输入?

时间:2016-02-08 03:29:27

标签: c arrays scanf

我目前正在制作一个程序,它从用户那里获取他们想要在数组中需要多少个数字的输入,以及哪些数字在这些数组中进行比较,以便在交叉点中找到他们的联合。

我写了这个,但由于某种原因,在用户输入了他们想要多少个数字以及哪个数字到第一个数组(a)之后,它会跳过第二个数组的整个用户输入(b)。

联合和交集的计算是正确的(未显示),但我无法弄清楚我缺少什么。我对C很陌生,所以我可能会遇到一些小问题。

感谢您的帮助!

int main(void){

    int i, j, x, y;
    int elemA, elemB;
    int a[10] = {0};
    int b[10] = {0};


    // Prompts user to enter the amount of numbers that will be in array a
    // then asks user to enter the values (0-9) to be inputted.
    printf("Enter the number of elements in set A: \n");
       scanf("%d", &elemA);
    printf("Enter %d number(s) for set A: \n", elemA);
       scanf("%d", &x);
       if(x < 10)
          a[x]=1; // sets the index in the array to 1 if the
                  //corresponding number that has been inputted


    // Prompts user to enter the amount of numbers that will be in array a
    // then asks user to enter the values (0-9) to be inputted.
    printf("Enter the number of elements in set B: \n");
    scanf("%d", &elemB);
    printf("Enter %d number(s) for set B: \n", elemB);
       scanf("%d", &y);
       if(y < 10)
          b[y]=1; // sets the index in the array to 1 if the
                  //corresponding number that has been inputted

*** rest of code ***

1 个答案:

答案 0 :(得分:2)

下面:

printf("Enter %d number(s) for set A: \n", elemA);
scanf("%d", &x);

您只读取一个int,其他人排队,并且在您没有用户输入的情况下在其他时间使用scanf时将被使用。