我做了一个练习,要求用户决定数组的大小最大为30,填充,然后检查数组中包含的所有数字是否相等。
我试过这种方法,但结果总是“数组的元素不都一样”,尽管它们都是。
有人能给予我一把吗?下面我插入了我已经写好的代码
#include <stdio.h>
#include <stdbool.h>
#define MAX_DIM 30
int check(int[], int);
int main(int argc, char *argv[]) {
int dim;
int num;
int flag;
int arr[MAX_DIM];
printf("Insert an array dimension. \n");
printf("Remember that the maximum size the array can take is %d \n\n", MAX_DIM);
printf("Array dimension: ");
scanf("%d", &dim);
if (dim <= MAX_DIM) {
arr[dim];
} else {
printf("Array dimension isn't valid! \n");
return 0;
}
printf("\n");
printf("Enter the numbers to place in the array of size %d ", dim);
for (int i = 0; i < dim; i++) {
scanf("%d", &num);
}
int equals = check(arr, dim);
if (equals == 1) {
printf("he elements of the array are all the same \n");
} else {
printf("he elements of the array are not all the same \n");
}
}
int check(int arr[], int dim) {
for (int i = 0; i < dim; i++) {
if (arr[i] != arr[i + 1]) {
return -1;
}
}
return 1;
}
3条答案
按热度按时间dpiehjr41#
两个主要问题(以及其他次要问题):
xuo3flqw2#
您没有存储scanf中的值。请尝试以下操作:
mtb9vblg3#
您没有设置实际数组值请将scanf调用替换为
scanf("%d", &arr[i]);