c语言编程,键盘输入一行字符,统计其中字母,空格,数字和其他字符的个数,并输出
展开全部
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int i,a[4];
char t;
int main()
{
for(i=0;;i++)
{
scanf("%c",&t);
if(t=='\n')break;
else if(t>='A'&&t<='Z') a[0]++;
else if(t>='a'&&t<='z')a[0]++;
else if(t==' ')a[1]++;
else if(t>='0'&&t<='9')a[2]++;
else a[3]++;
}
for(i=0;i<4;i++) printf("%d ",a[i]);
system("pause");
return 0;
}
//看看这个行不行,我运行可以。
#include<stdlib.h>
#include<string.h>
int i,a[4];
char t;
int main()
{
for(i=0;;i++)
{
scanf("%c",&t);
if(t=='\n')break;
else if(t>='A'&&t<='Z') a[0]++;
else if(t>='a'&&t<='z')a[0]++;
else if(t==' ')a[1]++;
else if(t>='0'&&t<='9')a[2]++;
else a[3]++;
}
for(i=0;i<4;i++) printf("%d ",a[i]);
system("pause");
return 0;
}
//看看这个行不行,我运行可以。
追问
看你这代码写的就知道是高手,我还有个提问,也是编程,你点开我的知道就看到了!还给你满意答案!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
{
int numCnt=0,charCnt=0,spaceCnt=0,albCnt=0;
char c;
while ((c=getchar()) != '\n')
{
if (c <= '9' && c >= '0') numCnt++;
else if (c <='z' && c>='a') albCnt++;
else if (c <='Z' && c>='A') albCnt++;
else if (c == ' ') spaceCnt++;
else charCnt++;
}
printf("%d, %d, %d, %d other", numCnt, albCnt, spaceCnt, numCnt);
return 0;
}
int main()
{
int numCnt=0,charCnt=0,spaceCnt=0,albCnt=0;
char c;
while ((c=getchar()) != '\n')
{
if (c <= '9' && c >= '0') numCnt++;
else if (c <='z' && c>='a') albCnt++;
else if (c <='Z' && c>='A') albCnt++;
else if (c == ' ') spaceCnt++;
else charCnt++;
}
printf("%d, %d, %d, %d other", numCnt, albCnt, spaceCnt, numCnt);
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void main()
{
int num=0,ch=0,other=0,space=0;
char c;
while ((c=getchar()) != '\n')
{
if (c <= '9' && c >= '0') num++;
else if (c <='z' && c>='a')ch++;
else if (c <='Z' && c>='A') ch+;
else if (c == ' ') space++;
else other++;
}
printf("num:%d, ch:%d, space:%d,other: %d", num,ch, space,other);
}
void main()
{
int num=0,ch=0,other=0,space=0;
char c;
while ((c=getchar()) != '\n')
{
if (c <= '9' && c >= '0') num++;
else if (c <='z' && c>='a')ch++;
else if (c <='Z' && c>='A') ch+;
else if (c == ' ') space++;
else other++;
}
printf("num:%d, ch:%d, space:%d,other: %d", num,ch, space,other);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一、问题分析:
输入一行字母,那么会以换行结束。所以可以存入数组,也可以逐个输入,遇到换行结束。
要统计各个类的个数,就要逐个判断是哪个分类的。
由于在ASCII码中,数字,大写字母,小写字母分别连续,所以可以根据边界值判断类型。
二、算法设计:
1、读入字符,直到遇到换行结束。
2、对于每个字符,判断是字母还是数字,或者空格,或者是其它字符。
3、对于每个字符判断后,对应类别计数器自加。
4、最终输出结果。
三、参考代码:
#include int main(){ int a,b,c,d,ch; a=b=c=d=0;//计数器初始化为0. while((ch=getchar())!='\n')//循环读取字符,到换行结束。 { if(ch>='0' && ch='a' && ch='A' && ch<='Z'))//字母 b++; else if(ch==' ')//空格 c++; else //其它 d++; } printf("%d %d %d %d\n", a,b,c,d);//输出结果。 return 0;}
输入一行字母,那么会以换行结束。所以可以存入数组,也可以逐个输入,遇到换行结束。
要统计各个类的个数,就要逐个判断是哪个分类的。
由于在ASCII码中,数字,大写字母,小写字母分别连续,所以可以根据边界值判断类型。
二、算法设计:
1、读入字符,直到遇到换行结束。
2、对于每个字符,判断是字母还是数字,或者空格,或者是其它字符。
3、对于每个字符判断后,对应类别计数器自加。
4、最终输出结果。
三、参考代码:
#include int main(){ int a,b,c,d,ch; a=b=c=d=0;//计数器初始化为0. while((ch=getchar())!='\n')//循环读取字符,到换行结束。 { if(ch>='0' && ch='a' && ch='A' && ch<='Z'))//字母 b++; else if(ch==' ')//空格 c++; else //其它 d++; } printf("%d %d %d %d\n", a,b,c,d);//输出结果。 return 0;}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询