我目前正在制作一个程序,它从用户那里获取他们想要在数组中需要多少个数字的输入,以及哪些数字在这些数组中进行比较,以便在交叉点中找到他们的联合。
我写了这个,但由于某种原因,在用户输入了他们想要多少个数字以及哪个数字到第一个数组(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 ***
答案 0 :(得分:2)
下面:
printf("Enter %d number(s) for set A: \n", elemA);
scanf("%d", &x);
您只读取一个int,其他人排队,并且在您没有用户输入的情况下在其他时间使用scanf时将被使用。