|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Y.H 于 2011-8-16 10:52 编辑
/****统计输入的各个数字,空白符(空格,制表符(tab),回车),其他字符(字母,特殊字符)*****/
/*************************我想了两天*************************/
/*****************希望高手帮忙看看能够优化不*****************/
/************就是零基础学习C语言中的34节的练习题3************/
- #include <stdio.h>
- void main()
- {
- //为所输入的数字计数,初始定义.
- int sum[10] = {0};
-
- //为空白符计数,初始定义.
- int i, c, kg = 0, tab = 0, enter = 0;
-
- //为其他字符计数,初始定义.
- int zm = 0; //zm用来统计所输入的其他字符的次数.
-
- while ((c = getchar()) != EOF) //判断所输入的为F6或Ctrl+z的时候结束循环.
- {
- //判断输入的数据是否在0和9之间.
- if (c >= '0' && c <= '9')
- {
- sum[c]++; //这里我觉得不用sum[c-'0']++, 好像结果都一样.
- }
-
- //判定输入的是否为空白符(空格、制表、回车).
- if (c == ' ')
- {
- kg++; //kg统计空格次数.
- }
- if (c == '\t')
- {
- tab++; //tab统计制表符次数.
- }
- if (c == '\n')
- {
- enter++; //enter统计回车次数.
- }
-
- //判定输入的是否为其他字符(例:a~z,A~Z,~/..等等)
- if (c >= '!' && c <= '/' || c >= ':' && c <= '~')
- {
- zm = zm + 1; //zm统计其他字符次数.
- }
- }
- //此为输出所输入的各个数字的次数.
- for (i = 0; i < 10; i++)
- {
- int temp_sum = 0;
- temp_sum = temp_sum + sum[i];
- printf ("%d : %d", i, sum[i]);
- if (9 == i)
- {
- printf ("/n数字类总和 : %d/n", temp_sum);
- }
- }
- //输出空白符次数.
- printf ("空白符 : %d\n", kg + tab + enter);
- //输出其他字符.
- printf ("其他字符 : %d/n", zm);
- }
复制代码
//今天思考那个劳什子递归(hanoi塔),之前没学C时听他们说这个我还以为很容易不过是麻烦些。不过终于了解了!
//同样如果做出来了,有机会送上来给大家研究
//最后大侠莫笑.
|
|