编程高手们 这个c程序哪错了 明明显示的是0 error 0warning、 但是一运行就是遇到问题需要关闭

#include<stdio.h>
int main()
{
int n,m,q,p;
ch=putchar();
for(;ch!='\n';ch=putchar())
{
if(('z'>=ch&&ch>='a')||('Z'>=ch&&ch>='A'))
n=n+1;
else if(ch=='')
m=m+1;
else if('9'>=ch&&ch<='0')
q=q+1;
else
p=p+1;
}
p=p+1;
printf("英文字母个数=%d\n空格个数=%d\n数字个数=%d\n其他字符个数=%d\n",n,m,q,p);
return 0;
}

第1个回答  2011-10-26
ch=putchar();
应该是
ch = getchar();

getchar()才是让用户输入字符,put是向屏幕输出。 for中的也需要修改。
第2个回答  2011-10-26
#include<stdio.h>
#include<string.h>
int main()
{
int n=0,m=0,q=0,p=0;
char ch;
scanf("%c",&ch);
for(;ch!='\n';scanf("%c",&ch))
{
if(('z'>=ch&&ch>='a')||('Z'>=ch&&ch>='A'))
n=n+1;
else if(ch==' ')
m=m+1;
else if('9'>=ch&&ch<='0')
q=q+1;
else
p=p+1;
}
p=p+1;
printf("英文字母个数=%d\n空格个数=%d\n数字个数=%d\n其他字符个数=%d\n",n,m,q,p);
return 0;
}
问题一:ch没有定义
问题二:n,m,p,q未初始化,也就是没有赋初值
问题三:else if(ch=='')少空格,修改后运行没有问题,同时若是用getchar或是putchar少头文件#include<string.h>另外统计有问题,这个你自己改改就可以了追问

#include
是啥

追答

和#include一个性质,头文件引用说明,因为你用到了字符串函数,当然我修改后的函数没有用到。。

追问

请问您是编程师吗?可否把QQ留个给我。。。

追答

我不是编程师,只是个学生,QQ不便在这里公布,如有需要,直接百度hi我。抱歉

追问

好的。。。我该完之后,个数不对丫

追答

是不对啊,我说了啊,这个问题还是你自己改吧,我都改了对你不好

追问

谢谢你的耐心解答。。。我弄会了~~~

本回答被提问者采纳
第3个回答  2011-10-26
有几个错误的。。
首先是ch没有定义或者说是声明的。。还有就是一楼说的putchar()应该是getchar()吧。。追问

改完后
运行结果
都不对
比如
字母个数=-858993452

第4个回答  2011-10-26
那是你的C语言编译软件的问题追问

但是这是大学里教学用的软件 很正版

相似回答