該錯誤已在#define 中標記,但我不確定問題出在哪里或如何解決。
這可能充滿了錯誤,所以歡迎任何反饋。
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define N 6
void fil_array(int* A,int const N);
void print_array(int* A,int const N);
int main()
{
int i,A[N];
srand(time(NULL));
fil_array(A, N);
print_array(A, N);
return 0;
}
void fil_array(int* A, int const N)
{
int i;
for (i=0; i<N; i )
A[i]=rand%21;
}
void print_array(int* A, int const N)
{
int i;
for (i=0; i<N; i )
printf("A[%d]=%d\n", i,A[i]);
}
uj5u.com熱心網友回復:
您的代碼中存在命名沖突。宏名稱#define N 6和int const N這 2 個名稱沖突。使用不同的名稱來解決這個問題。還有一件事我想分享。在這一行中A[i]=rand!;rand 應該是一個函式名。正確的方法是A[i]=rand()!;
uj5u.com熱心網友回復:
而不是int const N您應該使用此引數int n- 選擇與宏不同的名稱N。
uj5u.com熱心網友回復:
我想問題是您將函式的引數命名為前處理器定義的常量。我說的是 N。當編譯鏈開始時,前處理器會替換你代碼中定義的常量的值,這意味著你的函式原型看起來像:
void fil_array(int* A,int const 6);
因為你告訴編譯器 N 意味著 6
#define N 6
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/363011.html
上一篇:當str定義為charstr[100]時,scanf不適用于&str
下一篇:查找分配是否可以輕松調整大小?
