求救,c语言里missing ')' before '{'

#include <stdio.h>
void main()
{ char c;
int h=0,i=0,j=0,k=0;
scanf("%d%d%d%d",&h,&i,&j,&k);
while((c=getchar())!='\n’))
{if(c=='32') h++;
else if((c>='33'&&c<='57')||(c>='123'&&c<='127')) i++;
else if(c>='58'&&c<='64') j++;
else if((c>='65'&&c<='90')||(c>='97'&&c<='122')) k++;
}
printf("空格%d个\n其他字符%d个\n数字%d个\n英文字母%d个\n",h,i,j,k);
}
他说第7行有问题,帮帮忙怎么改啊?

while((c=getchar())!='\n’))
应为:while( (c=getchar())!='\n')
有两个错误。
第一个:有一个单引号打成了中文的引号;
第二个:while多了一个)要删掉。

程序虽然可以运行,但是有警告,请描述一下程序的输入输出范例。追问

能编译出来,但是没有实现我想要的功能咋办?

追答

你想实现什么功能?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-11
while那行括号不是配对的吧,请确认一下'\n'的两个单引号是否都是英文下的。
这个...char是一个用ASCII表示的一个字符,不会出现'32'之类的数吧。
第2个回答  2013-11-12
#include <stdio.h>
void main()
{ char c;
int h=0,i=0,j=0,k=0;
while((c=getchar())!='\n')
{if(c==32) h++;
else if((c>=33&&c<=47)||(c>=58&&c<=64)||(c>=91&&c<=96)||(c>=123&&c<=127)) i++;
else if(c>=48&&c<=57) j++;
else if((c>=65&&c<=90)||(c>=97&&c<=122)) k++;
}
printf("空格%d个\n其他字符%d个\n数字%d个\n英文字母%d个\n",h,i,j,k);
}
第3个回答  2013-11-11
while((c=getchar())!='\n’))改为 while((c=getchar())!='\n')。第二个单引号是中文状态改为英文状态。去除最后一个右括号。
第4个回答  2013-11-11
2个错误,第一个是!='\n',第二个是多了括号追问

能编译出来,但是不能实现想要的功能怎么办?

追答

你要实现啥功能,我帮你改

相似回答