C语言的一个程序问题(统计各数据类型个数)

来源:百度知道 编辑:UC知道 时间:2024/07/01 04:54:22
想要统计输入的一串字符中大写,小写,数字,特殊字符的数目,以ENTER结束。。。。。
我的程序:
#include<stdio.h>
void main()
{
char ch;
int num1,num2,num3,num4,m;
num1=0;
num2=0;
num3=0;
num4=0;
puts("Type in a sentence,then press <ENTER>\n");
while ((getchar())!='\n')
{
if((getchar())>=48&&(getchar())<=57) num1++;
if((getchar())>=65&&(getchar())<=90) num2++;
if((getchar())>=97&&(getchar())<=122) num3++;
if((getchar())>122||((getchar())<97&&(getchar())>90)||((getchar())<65&&(getchar())>57)||(getchar())<48) num4++;
}
printf("%4d%4d%4d%4d",num1,num2,num3,num4);
}

CTRL+F9没问题,但没有预期结果。。。
请高手指点。。。

#include<stdio.h>
void main()
{
char ch;
int num1,num2,num3,num4,m;
num1=0;
num2=0;
num3=0;
num4=0;
puts("Type in a sentence,then press <ENTER>\n");
while ((ch=getchar())!='\n')
{
if(ch>=48&&ch<=57) num1++;
else if(ch>=65&&ch<=90) num2++;
else if(ch>=97&&ch<=122) num3++;
else num4++;
}
printf("%4d%4d%4d%4d",num1,num2,num3,num4);
}

帮你改了一下 你的太复杂了 可以运行

修改如下:

//---------------------------------------------------------------------------

#include<stdio.h>
void main()
{
char ch;
int num1,num2,num3,num4,m;
num1=0;
num2=0;
num3=0;
num4=0;
puts("Type in a sentence,then press <ENTER>\n");
while ((ch=getchar())!='\n')
{
if(ch>=48&&ch<=57) num1++;
else if(ch>=65&&ch<=90) num2++;
else