【发布时间】:2019-05-28 09:13:22
【问题描述】:
我是 C 的初学者,正在尝试将用户输入的数字分类为奇数和偶数数组。我不明白为什么我的代码不起作用。 干杯。
这是我的代码,我不明白我的错误。
int x[]= {};
int i=0;
int d=0;
int j=0;
int even[12]={};
int odd[12]={};
printf("Enter amount of numbers: "); // asking user for amount of numbers
scanf("%d", &d);
for (j=0; j<d; j++){
printf("Enter number %d: ", i+1); // scanning input into 'x' array
scanf("%d", x[i]);
}
printf("Even numbers: ");
for (i=0; i<d; i++) {
if (x[i] % 2 == 0) { // sorting into even array
even[i]=x[i];
printf("%d \n", even[i]);
}
}
printf("\n Odd numbers: ");
for (i=0; i<d;i++){
if (x[i] % 2 != 0) { // sorting into odd array
odd[i]=x[i];
printf("%d \n", odd[i]);
}
}
此错误消息不断出现:
$ ./main
Enter amount of numbers: 4
Enter number 1: 6
Segmentation fault (core dumped)
【问题讨论】:
-
scanf("%d", x[i]);应该是scanf("%d", &x[i]); -
int x[]= {};中没有 4 个整数的空格。 -
@Blaze 似乎有效,但它没有将数字读入奇数和偶数数组。