我如何制作它以便我可以在我的函数中使用#define变量?我需要创建一个使用此代码调用函数的程序。基本上我的底部函数可以改变,但我的主要功能不能改变这种格式,所以我写我的函数我必须通过函数传递变量a和变量SIZE。但目前似乎SIZE实际上并未被认为是一个int变量。
#include <stdio.h>
#define SIZE 9
int i, position, tmp;
void readArray(int a[]);
void printArray(int a[]);
void sortArray(int a[]);
int main(void)
{
int a[SIZE];
readArray(a);
printArray(a);
sortArray(a);
printf("After sorting:\n");
printArray(a);
return 0;
}
//Functions//
void readArray(int a[]){
printf("Please enter %d integers: ", SIZE);
for (i=0; i<SIZE; i++) {
scanf("%d", &a[i]);
}
}
void printArray(int a[]){
for (i=0;i<SIZE;i++) {
printf("a[%d] = %3d\n", i, a[i]);
}
}
void sortArray(int a[]){
for (i=0; i<SIZE; i++) {
// In each iteration, the i-th largest number becomes the i-th array element.
// Find the largest number in the unsorted portion of the array and
// swap it with the number in the i-th place.
for (position=i; position<SIZE; position++) {
if (a[i] < a[position]) {
tmp = a[i];
a[i] = a[position];
a[position] = tmp;
}
}
}
}
答案 0 :(得分:3)
写作
#define SIZE 9
将告诉预处理器用9替换SIZE的每个外观。 意思是,以下一行 -
void sortArray(int a[], int SIZE)
将替换为 -
void sortArray(int a[], int 9)
我认为你明白这是非法的。 您应该删除第二个函数参数。
答案 1 :(得分:0)
您应该将C变量重命名为其他而不是SIZE
。这已经被预处理器使用了。另外,请注意,因为您已经写了Int
而不是int
。