我正在努力将以前扫描过的数组数据发送到函数中。
#include <stdio.h>
#include <stdlib.h>
int display(int a[21]);
int main(){
int i;
int a[21];
FILE*fpointer;
fpointer=fopen("data.txt","r");
if (fpointer==NULL){
printf("\nFile could not be found.");
exit(1);
}
else{
for (i=0;i<21;i++){
fscanf(fpointer, "%d",&a[i]);
}
fclose(fpointer);
}
display(int a[21]);
return 0;
}
int display(int a[21]){
int i;
for (i=0;i<21;i++){
printf("%d\n",a[i]);
}
return 0;
}
我想使用display()函数显示data.txt中的每个值。我能够fscanf每一个进入数组,我只是似乎无法将数组发送到函数。
data.txt中:
1
6
4
7
3
4
12
14
15
-17
-19
21
-23
0
37
0
-31
32
34
-37
-39
输出值:
1065353216
1086324736
1082130432
1088421888
1077936128
1082130432
1094713344
1096810496
1097859072
-1048051712
-1047003136
1101529088
-1044905984
0
1108606976
0
-1040711680
1107296256
1107820544
-1038876672
-1038352384
答案 0 :(得分:4)
在main
结束时,这不是函数调用:
…
}
display(int a[21]);
return 0;
}
因为包含了参数的类型,所以这被认为是声明(没有返回类型,因此隐式int
)。要调用函数,只需传递所需的参数:
display(a);
答案 1 :(得分:0)
#include <stdio.h>
#include <stdlib.h>
int display(int a[21]);
int main(){
int i;
int a[21];
FILE*fpointer;
fpointer=fopen("data.txt","r");
if (fpointer==NULL){
printf("\nFile could not be found.");
exit(1);}
else{
for (i=0;i<21;i++){
fscanf(fpointer, "%d",&a[i]);}
fclose(fpointer);}
display(a);
return 0;
}
int display(int a[21]){
int i;
for (i=0;i<21;i++){
printf("%d\n",a[i]);}
return 0;
}
现在显示结果。我正在扫描%f而不是%d,也是主函数中的显示(a)而不是显示(int a [])