鱼C论坛

 找回密码
 立即注册
查看: 2982|回复: 5

[作品展示] 计算输入不同字符的次数

[复制链接]
发表于 2014-2-15 15:38:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一路艰辛的编程学习之路终于暂时暂停了,看一下我的作品吧!世界总不是完美的,我的代码总会有那个这个的缺陷,大家帮忙纠正一下哈O(∩_∩)O哈!

献丑了:
  1. #include <stdio.h>
  2. #include <stdlib.h>


  3. /*计算输入的数字、换行符、空格、等等字符的次数*/

  4. int main(void)
  5. {
  6.     /*声明两个函数*/
  7.     int iIsNumber(char);    //判断数字
  8.     int iIsBlank(char);     //判断字符
  9.     //////////////////////////////////////////////
  10.     int num[10] = {0}, /*定义并初始化数组*/
  11.         blank, /*暂存换行符、制表符、回车的次数*/
  12.         others; /*其它字符的次数*/
  13.     //--------------------------------------------
  14.     int numIterm, /*暂存数组下标*/
  15.         boolIsBlank; /*判断字符是否符合的变量*/
  16.     //--------------------------------------------
  17.     int i; /*给循环用的*/
  18.     //--------------------------------------------
  19.     char c; /*定义字符变量*/
  20.     //////////////////////////////////////////////
  21.     /*下面是为定义的几个变量清零*/
  22.     blank = others = numIterm = boolIsBlank = 0;  
  23.     //////////////////////////////////////////////

  24.     while ((c = getchar()) != '`') {    //当输入的字符含有 ` 的时候,就终止while循环
  25.         if (('0' <= c) && (c <= '9')) { //判断字符是否在数字字符的ASCII码范围内
  26.             numIterm = iIsNumber(c);    //获取数字字符码的位置
  27.             if (numIterm > 0) {     //那个位置可能为负数,还是判断一下
  28.                 num[numIterm]++;    //为那个位置相应的变量计数
  29.             }
  30.         } else {    //凡是总是有例外
  31.             boolIsBlank = iIsBlank(c);  //判断当前的字符的结果
  32.             if (boolIsBlank) {  //判断结果是否符合
  33.                 blank++;    //符合就计数
  34.             } else {    //还真有例外嘢!
  35.                 others++;   //其它的也计数吧^0.0^
  36.             }
  37.         }
  38.     }

  39.     ////////////////////////////////////////////////////////////////////////////

  40.     printf("blank:%d,others:%d\n", blank, others);  //输出结果

  41.     for (i = 0; i < 10; i++) {  //用循环输出数组的结果
  42.         printf("\n%d:%d", i, num[i]);   //打印结果
  43.     }

  44.     putchar('\n');  //换一下行

  45.     ////////////////////////////////////////////////////////////////////////////
  46.     system("pause");
  47.     return 0;
  48. }


  49. /*传入一个字符,判断它在数字中是第几,并且返回所在的编号*/
  50. int iIsNumber(char chIn)
  51. {
  52.     int ret;
  53.     switch (chIn) {
  54.     case '0':
  55.         ret = 0;
  56.         break;
  57.     case '1':
  58.         ret = 1;
  59.         break;
  60.     case '2':
  61.         ret = 2;
  62.         break;
  63.     case '3':
  64.         ret = 3;
  65.         break;
  66.     case '4':
  67.         ret = 4;
  68.         break;
  69.     case '5':
  70.         ret = 5;
  71.         break;
  72.     case '6':
  73.         ret = 6;
  74.         break;
  75.     case '7':
  76.         ret = 7;
  77.         break;
  78.     case '8':
  79.         ret = 8;
  80.         break;
  81.     case '9':
  82.         ret = 9;
  83.         break;
  84.     default:
  85.         ret = -1;
  86.     }
  87.     return ret;
  88. }
  89. /////////////////////////////////////////



  90. /*传入一个恶字符,判断它是否处于一下3个常量中,如果是则返回真,否则返回假*/
  91. #define chSpcace 32     //空格
  92. #define chNewLine 10    //换行符
  93. #define chHorizonTal 9  //水平制表符

  94. int iIsBlank(char chIn)
  95. {
  96.     int ret;
  97.     switch (chIn) {
  98.         case chSpcace:
  99.             ret = 1;
  100.             break;
  101.         case chNewLine:
  102.             ret = 1;
  103.             break;
  104.         case chHorizonTal:
  105.             ret = 1;
  106.             break;
  107.         default:
  108.             ret = 0;
  109.     }
  110.     return ret;
  111. }

  112. ///////////////////////////////////////////
复制代码
该代码是在windows下GCC编译器下进行编译的:运行结果:
Show.png
+------------------------------------------------+


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-2-15 17:27:07 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-15 18:39:28 | 显示全部楼层
支持一下啊呵呵
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-15 20:06:25 | 显示全部楼层
鼓励一下,虽然比我强,哈哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-15 21:05:37 | 显示全部楼层
不错不错加油啊!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-23 18:36:27 | 显示全部楼层
:titter:淡定,淡定,淡定……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-21 05:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表