鱼C论坛

 找回密码
 立即注册
查看: 2836|回复: 4

求代码精简,或最有效方法(求数字、空格符、其它字符各有多少)

[复制链接]
发表于 2011-9-15 23:06:15 | 显示全部楼层 |阅读模式

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

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

x
  1. #include"stdio.h"
  2. void main()
  3.   {
  4.     char i;
  5.     int num[10]={0};
  6.     int blank=0,others=0,x,y=0;
  7.          
  8.    
  9.    printf("\t\t结束输入时,连按三次回车!最后三次回车算入空格符中!\n");
  10.    while(y!=3)                       //变量y为结束输入做准备
  11.   {  
  12.       i=getchar();
  13.      if(i-48>=0 && i-48<=9)   //求有各个数字有多少个
  14.      {
  15.          x=i-48;            // x为获取输入那个数字
  16.          num[x]++;
  17.          y=0;       
  18.      }
  19.     else if(i=='\t' || i==' ')   //求空格符有多少个
  20.           {
  21.                blank++; y=0;
  22.           }
  23.          else if(i=='\n')
  24.                {
  25.                      blank++; y++;
  26.               }
  27.                else                         //其它字符个数
  28.                {
  29.                      others++; y=0;
  30.                }
  31.                 
  32. }
  33.           for(x=0;x<10;x++)
  34.    {
  35.          printf("%d有%d个!\n",x,num[x]);  //输出各个数有多少个
  36.    }
  37. printf("空格符=%d\n",blank);
  38. printf("其它字符=%d\n",others);        
  39.   }
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-16 00:40:54 | 显示全部楼层
写的有点复杂了,其实只要用switch语句就可以了,区分空格以及字符直接根据他们的ASCII。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-9-16 01:35:37 | 显示全部楼层

能帖出代码么?   我实在想不出怎样用switch语句来处理这个题目会更方便。
sorry ! 我的题目要求写的不是很明白。
题目要求是: 输出各个数字的个数,空格符(空格、回车、Tab键)的个数,其它字符(除了以上两个 的所有字符)。数字用num[10],空格符个数用变量blank,其它字符others。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-22 21:21:38 | 显示全部楼层
计算机上所有的字符都要检测么?

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-9-23 10:44:35 | 显示全部楼层
  1. char c = '\0';
  2.         int num[10] = {0};
  3.         int blank =0, others=0, y=0;
  4.         while (y < 3)
  5.         {
  6.                 c = getchar();
  7.                 if (c >= '0' && c <= '9')
  8.                 {
  9.                         num[c-'0']++;
  10.                 }
  11.                 else if (c == '\t' || c == ' ')
  12.                 {
  13.                         blank++;
  14.                 }
  15.                 else if (c == '\n' || c == '\r')
  16.                 {
  17.                         //'\n == 换行 ''\r' == 回车
  18.                         y++;
  19.                 }
  20.                 else
  21.                 {
  22.                         others++;
  23.                 }
  24.         }
复制代码
基本都这样做。。。
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-8 01:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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