c语言题,急需答案!

输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。(是老谭的c程序设计第三版第129页第2题)有高分,3日之内答出正确答案再加分。
用while或do while回答。谢谢,本人新手,简单点!

第1个回答  2007-03-31
#include <stdio.h>
void main()
{
char new[];
int i,x=0,y=0,z=0,o=0; /**x为英文字符数y为空格字符数z数字个数,o其他字符树***/
printf("输入一个文本\n");
scanf("%s",new);
for(i=0;new[i];i++)
{
if(new[i]>='1'&&new[i]<='9')
z++;
else if((new[i]>='a'&&new[i]<='z')||(new[i]>='A'&&new[i]<='Z'))
x++;
else if(new[i]==' ')
y++;
else o++;
}
printf("英文个数%d\n",x);
printf("数字个数%d\n",z);
printf("空格个数%d\n",y);
printf("其他字符个数%d\n",o);
}
第2个回答  推荐于2016-12-01
很简单的,用一个字符数组一一判断就可以了.
#include<stdio.h>
void main()
{
int i=0,chars=0,nums=0,spaces=0,others=0;
char a[50];/*用来接收输入的字符串*/
printf("请输入一行字符:\n");
gets(a);
while(a[i]!='\0')
{
if ((a[i]>='A' && a[i]<='Z') || (a[i]>='a' && a[i]<='z')) /*字符*/
chars++;
else if (a[i]>='0' && a[i]<='9') /*数字*/
nums++;
else if (a[i]==' ') /*空格*/
spaces++;
else
others++;
i++;
}
printf("共有英文字母%d个,数字%d个,空格%d个,其它字符%d个.\n",chars,nums,spaces,others);
}
在VC6.0下调试通过.本回答被提问者采纳
第3个回答  2007-03-22
这个不是很难吧?用一个for循环,挨个判断:
用_istdigit[int isdigit(int c);int iswdigit(wint_t c);]判断是否是数字0-9;不需要区分十六进制数吧?
用_istalpha[int isalpha(int c);int iswalpha(wint_t c);]判断是否为英文字母;
用_istspace[int isspace(int c);int iswspace(wint_t c);]判断是否为空格,制表符,换行符等,若只判断空格,则用_T(" ")直接比较算了。
剩下的不就是其他字符了吗?
呵呵
第4个回答  2007-03-22
nt main()
{
int charcount = 0, chinesecount = 0, numcount = 0, spacecount = 0, othercount = 0, totalcount;
cout<<"请输入一行字符:";
char pstr[] = "1 a ,,,我 朥你", curchar;
// cin>>pstr;
curchar = pstr[0];
int curindex = 1;
while(curchar != '\0')
{
if (curchar >= 65 && curchar <= 122) //A-z
charcount++;
else if (curchar >= 128 || curchar < 0) //中文
chinesecount++, curindex++; //中文字符占两个字节,因此将游标向后移一位
else if (curchar >= 48 && curchar <= 57) //0-9
numcount++;
else if (curchar == 32) //空格
spacecount++;
else
othercount++;
curchar = pstr[curindex++];
}

totalcount = charcount + chinesecount + numcount + spacecount + othercount;
cout<<"总数:"<<totalcount<<" 英文字符:"<<charcount<<" 中文字符"<<chinesecount
<<" 数字:"<<numcount<<" 空格:"<<spacecount<<" 其它:"<<othercount;
}
//我转载的

参考资料:http://zhidao.baidu.com/question/5760725.html

谁能提供点C语言的试题给我,最好能有答案的,非常感谢!
答案:include <stdio.h> void print_fibonacci(int n) {int a = 0, b = 1;for (int i = 1; i <= n; i++) {printf("%d ", a);int c = a + b;a = b;b = c;}printf("\\n");} int main() {int n;printf("请输入一个整数:");scanf("%d", &n);print_fibonacci...

c语言问题,求大神解答
char a=97 a为字符型,对应的是ASCII码表中十进制数97对应的字符,是a c对应的字符是A,对应的ASCII码表中十进制数是65 输出语句的意思是计算字符a和字符A在ASCII码表中对应十进制数的差并按规定格式输出。97-65=32 结果输出a-A=32 选C ...

C语言的题,都不难,帮忙解答,追加悬赏喔。麻烦把各个选项都解释解释最好...
这个union是表示,一块储存空间用short,long,char,三种类型来描述,所以c[0] 与i[0]一样的。这个程序是要打印s->c[0],printf("%x\\n", s ->c[0])这句里的%x表示打印的数字是十六进制的。由于c[0]里面放的是0x39,所以这里打印的正好是39.第三题:与第二题类似,注意这里求的是them的...

c语言二级问题,请高手详细解答下
y=(--x||++y);||运算符的短路效应,--x值为非零,所以子表达式--x||++y值为1,且后半部分的++y未执行,因此y值为1

急需用C语言解决以下问题!! 一千以内的水仙花数 一百以内偶数的阶乘之和...
1、计算水仙花数 include <stdio.h>void main(){int i,a,b,c;for(i=100;i<=999;i++){a=i%10;b=i\/10%10;c=i\/100;if(a*a*a+b*b*b+c*c*c==i)printf("%d ",i);}} 运行结果截图:2、100以内偶数的阶乘之和 include <stdio.h>void main(){int i,j;double k=1,sum=0...

C语言试题啊,求大神帮忙答案啊!
题号:5 C语言规定,函数返回值的类型是由( )所决定。选项:a、return语句中的表达式类型 b、调用该函数时的主调函数类型 c、调用该函数是系统临时指定 d、在定义该函数时所指定的函数类型 这个可以参考第二题,函数的定义规则,当然是由定义的时候确定的了。本题答案为d。题号:6 凡是函数中未指定...

C语言求救哦,采纳有加分哦
答案:CDCAAABCCD 针对楼上几位答案有所不同处,我做一下解释:第一题:C肯定是错的。但A也有问题。将一个数组名称为“数组指针”,这显然不妥。事实上,有很多所谓“经典”的教材上也会把数组名和指针混淆。数组名肯定不是指针变量。对于这方面的分析,你可以看看这个链接:h ttp:\/\/hi.baidu....

C语言,给出理由。谢谢,急需答案。
C语言规定,在字符串的末尾自动加上串结束标记'\\0',因此数组static char x[]="12345";的长度是6;而数组static char y[]={'1','2','3','4','5'};是按照字符方式对数组进行初始化,系统不会自动加上串结束标记'\\0',因此数组static char y[]={'1','2','3','4','5'};的长度...

C语言题,麻烦解答一下~O(∩_∩)O~
1.x=3,x-=2, 所以x=1,这--x 想x=0,!x = 1,所以再执行一次x-=2,打印x=-2,这时--x,!x为0 2.class是一个数组,Mary在下标为2的位置,M在name字段0下标的位置,所以选D 3.fib(5)=fib(4)+fib(3),fib(4)=fib(3)+fib(2),fib(3)=fib(2)+fib(1),fib(2)=fib(1)+...

求c语言题目
答案: 5; 294; 4; 29; 9;说明:x%10 2945 除以10求余数,得5 x\/10 2945整除10运算(去尾,不考虑四舍五入),得商 294 (x\/10)%10 等于 294%10, 得余数 4.x\/100 2945整除100运算, 得商 29.(x\/100)%10 等于 29%10, 得余数9 ...

相似回答