C语言编程错误求助

C语言题库第四套,自己编的程序总是提示错误(自己编的程序为fun下面的分支)#include<stdio.h>#include<conio.h>#include<stdlib.h>#define N 5double fun (int w[][N]){ int a,b; a=0; b=0; double r; r=0; while (a<5) { while (b<5) {r+=w[a][b]; b++;} a++; } r=r/(N*N); return r;}void main(){ FILE *wf; int a[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1}; int i, j; double s; system("CLS"); printf("*****The array*****\n "); for (i=0; i<N; i++) { for (j=0;j<N;j++) {printf("%4d ",a[i][j]);} printf("\n "); } s=fun(a); printf("*****THE RESULT*****\n "); printf("The sum is : %lf\n ",s);/******************************/ wf=fopen("out.dat","w"); fprintf (wf,"%lf",s); fclose(wf);/*****************************/}错误为:D:\KSWJJ\24000001\prog1.c(10) : error C2143: syntax error : missing ';' before 'type'D:\KSWJJ\24000001\prog1.c(11) : error C2065: 'r' : undeclared identifier

按你的代码输入验证了一下,没有问题。从错误提示看,应该是b=0;最后的分号;输成中文的全角符号了。所以造成提示double r;前面少分号,就是上一行b=0;最后的分号,然后连带r也成没有定义了。两个错误提示说的是一个问题,就是b=0;最后的分号输入错误。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-05
从现象看,你的编译器可能是早期C的平台,它不允许在正式代码行间进行变量声明。所以把double r;提前到a=0;b=0;前面就可以了……建议把double及之前的代码重敲一遍,有时字母或行间混入了不可显示字符也能造成这种问题。供参考。
第2个回答  2017-09-05
是不是输成中文的逗号了?追问

不是,中文的逗号不是那个样子

追答

最好把代码贴上来

相似回答