解题思路和注意事项:
在这里我们会用到getchar()函数,简单来说,getchar()就是从键盘获取字符,直到回车为止;
代码中while里的表达式(c = getchar()) != '\n',意思是,当输入的字符不是换行符的时候,继续往下执行;
注意这里的括号不能丢,因为!=的优先级比=高,如果去掉了外面的括号就等价于 c = (getchar()!='\n');
参考代码:
#include<stdio.h> int main() { int letter = 0,number = 0,blank = 0,others = 0,c; //分别为字母、数字、空格、其他 while((c = getchar()) != '\n'){ if(c >= 'A' && c<='Z' || c >= 'a' && c <= 'z') //判断是否为字母 letter++; else if(c >= '0' && c <= '9') //判断是都为数字 number++; else if(c == ' ') //判断是否为空格 blank++; else //其他 others++; } printf("%d %d %d %d\n",letter,number,blank,others); return 0; }
0.0分
179 人评分
a=getchar(); while(a!='\n') { if(a==' ') count1++; else if(a>=65&&a<=90||a>=97&&a<=122) count2++; else if(a>=48&&a<=57) count3++; else count4++; }
各位大佬我哪里错了。蓝瘦 #include <stdio.h> int main(void) { int character=0; int number=0; int space=0; int others=0; char c; while((c=getchar())!='\n') { if (c>='a'&&c<='z'||c>='A'&&c<='Z') character++; else if('1'<=c&&c<='9') number++; else if(c==' ') space++; else others++; } printf("%d %d %d %d",character,number,space,others); return 0; }
问个问题,为什么c=gtechar!='\n',这个'\n'是什么意思
#include <stdio.h> //输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。 void main() { int a,c,num,space,y; a = c = num = space = y = 0; while((a = getchar()) != '\n') { if(a>='A'&&a>='Z'||a>='a'&&a>='z') { ++c; } else if(a>='0'&&a<='9') { ++num; } else if(a==' ') { ++space; } else { ++y; } } printf("%d %d %d %d\n",c,num,space,y); } 提交说我答案错误50%。。。。。。可我编译器没啥错误啊。。。求解
离殇 2020-01-22 14:29:29 |
我敲!敲错了,改完后如下:#include <stdio.h> //ÊäÈëÒ»ÐÐ×Ö·û£¬·Ö±ðͳ¼Æ³öÆäÖÐÓ¢ÎÄ×Öĸ¡¢Êý×Ö¡¢¿Õ¸ñºÍÆäËû×Ö·ûµÄ¸öÊý¡£ void main() { int a,c=0,num=0,space=0,y=0; while((a = getchar()) != ' ') { if(a>='A'&&a<='Z'||a>='a'&&a<='z') { ++c; } else if(a>='0'&&a<='9') { ++num; } else if(a==' ') { ++space; } else { ++y; } } printf("%d %d %d %d ",c,num,space,y); return 0; }
紫晶之巅 2020-02-05 16:39:45 |
a是字符,应该用char
21942张子洋 2020-03-17 11:56:10 |
a>='Z' .....................
江川 2020-05-18 10:20:57 |
a>='a'&&a<='z'你的都是大于
这个为什么不能用数组,就是先用strlen求数组长度,然后再用for循环
北先生 2020-02-16 20:14:36 |
因为不知道输入的字符的数量,用数组不太准确
onemorecod 2020-07-08 12:41:46 |
strlen只能统计到空格字符前面的字符吧
矩形面积交 (C语言代码)浏览:1553 |
回文数(一) (C语言代码)浏览:809 |
最长单词 (C语言代码)浏览:1471 |
C语言训练-大、小写问题 (C语言代码)浏览:792 |
C语言程序设计教程(第三版)课后习题6.6 (C++代码)浏览:649 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:544 |
2^k进制数 (C语言描述,蓝桥杯)浏览:1457 |
班级人数 (C语言代码)浏览:980 |
买不到的数目 (C语言代码)浏览:3134 |
马拦过河卒 (C语言代码)浏览:1213 |
红莲 2020-07-11 14:46:49 |
为什么a!在循环里面会导致 Alarm clock的报警?难道循环内部必须是 while((a = getchar()) != ' ')?