c语言初级问题 请高手帮忙

来源:百度知道 编辑:UC知道 时间:2024/06/23 18:16:48
#include <stdio.h>
int main(void)
{
int c,i,letter[26];
FILE *ifp,*ofp;
ifp=fopen("ldc1","r");
ofp=fopen("ldc100","w");
for(i=0;i<26;++i)
letter[i]=0;
while(((c=getc(ifp)!=EOF)
if(c>='a'&& c<='z')
++letter[c-'a'];
for(i=0;i<26;++i){
if(i%6==0)
putc('\n',ofp);
fprintf(ofp,"%c:%5d",'a'+i,letter[i]);
}
put('\n',ofp);
system ("pause");
return 0;
}
帮看看这个代码 为什么总在 if(c>='a'&& c<='z')这里报错
syntax error before "if"

while(((c=getc(ifp)!=EOF) 仔细数括号。。。
这种错误看报错信息就应该内发现了。。
syntax error before "if"
在if前语法错误。。报错信息已经说的很清楚了
while((c=getc(ifp))!=EOF)

表达式错误啊,前面那个while语句错了,括号不配对,没看出来吗?

是while语句有问题。
你的while循环条件c=getc(ifp)少了个括号,所以系统会报错,至于为什么总在if(c>='a'&& c<='z')这里报错,“syntax error before "if"”,因为C语言允许一条代码分行写,所以系统编译的时候检查到语法错误会再检查下一行,所以就会报到出错代码的下一行了。

#include <stdio.h>
int main(void)
{
int c,i,letter[26];
FILE *ifp,*ofp;
ifp=fopen("ldc1","r");
ofp=fopen("ldc100","w");
for(i=0;i<26;++i)
letter[i]=0;
while(((c=getc(ifp)!=EOF) {
if(c>='a'&& c<='z')
++letter[c-'a'];
}
for(i=0;i<26;++i){
if(i%6==0)
putc('\n',ofp);
fprintf(ofp,"%c:%5d",'a'+i,letter[i]);
}
put('\n',ofp);
system ("pause");