Y.H 发表于 2011-8-13 09:23:18

C视频-34节-练习题-3-源代码.

本帖最后由 Y.H 于 2011-8-16 10:52 编辑

/****统计输入的各个数字,空白符(空格,制表符(tab),回车),其他字符(字母,特殊字符)*****/
            /*************************我想了两天*************************/
            /*****************希望高手帮忙看看能够优化不*****************/
            /************就是零基础学习C语言中的34节的练习题3************/


#include <stdio.h>

void main()
{
      //为所输入的数字计数,初始定义.
      int sum = {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++;   //这里我觉得不用sum++, 好像结果都一样.
                }
                  
                //判定输入的是否为空白符(空格、制表、回车).
                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;
               printf ("%d : %d", i, sum);
               if (9 == i)
               {
                     printf ("/n数字类总和 : %d/n", temp_sum);
               }
         }

         //输出空白符次数.
         printf ("空白符 : %d\n", kg + tab + enter);

         //输出其他字符.
         printf ("其他字符 : %d/n", zm);
}





//今天思考那个劳什子递归(hanoi塔),之前没学C时听他们说这个我还以为很容易不过是麻烦些。不过终于了解了!
//同样如果做出来了,有机会送上来给大家研究
//最后大侠莫笑.





dong50252409 发表于 2011-8-13 09:42:47

你貌似没定义sum数组呀

Y.H 发表于 2011-8-13 09:44:22

不好意思 我在排布这个代码板式,不小心把那个删除了 我改回来

/db_八神_/zq 发表于 2011-8-13 16:22:15

/db_八神_/zq 发表于 2011-8-13 16:23:15

Y.H 发表于 2011-8-16 10:30:24

呵呵 谢谢 我改改试试…………

Y.H 发表于 2011-8-16 10:33:29

/db_八神_/zq 发表于 2011-8-13 16:22 static/image/common/back.gif
你这个程序,可以简化下的,写得太长了

把switch case 换成   


呵呵 的确 真的 我没想到 既然是数字那就是在0~9之间 那就可以直接用c谢谢 呵呵 …………

/db_八神_/zq 发表于 2011-8-18 18:46:17

我爱软件开发 发表于 2016-4-14 10:41:26

{:5_92:}
页: [1]
查看完整版本: C视频-34节-练习题-3-源代码.