解题思路和注意事项:
在这里我们会用到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+B for Input-Output Practice (V) (C语言代码)浏览:640 |
WU-图形输出 (C++代码)浏览:836 |
C语言训练-自由落体问题 (C语言代码)浏览:650 |
C语言训练-数字母 (C语言代码)浏览:648 |
回文数字 (C语言代码)浏览:2538 |
A+B for Input-Output Practice (C语言代码)浏览:505 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:636 |
The 3n + 1 problem (C语言代码)浏览:550 |
数组输出 (C语言代码)浏览:749 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:592 |
湖畔读书人 2018-05-05 17:29:50 |
指点不敢当。因为用了getchar()函数,从键盘获取字符,这样每输入一个字符就会做一次循环,判断其为何种字符,知道输入换行符为止。如果用scanf输入的话,会更复杂。如果还有我说的不清楚的方面可以在网上查阅资料。