鱼C论坛

 找回密码
 立即注册
查看: 5691|回复: 2

函数章节第四小节最后一问

[复制链接]
发表于 2016-8-12 18:48:45 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 轮回的夏 于 2016-8-12 19:07 编辑

编写一个用来统计输入的各个数字,空白符以及所有其他字符出现次数的程序,分别存储在变量num[10],blank,othersl里边分别打印出来下面是我自己编写的程序


  1. #include<stdio.h>//为什么程序运行的时候,按下F6之后还需要按多一下回车键才能继续运行

  2. void main()

  3. {
  4.         char num[100]={ 0 } , blank[100]={ 0 } , other[100]={ 0 };//所有字符储存于这些数组中
  5.         char c[100]={ 0 };
  6.         int  blanks , number, others;//此处定义的变量用来存放所计算数字,空白符以及其他字符出现次数
  7.         blanks=number=others=0;
  8.         
  9.         int a , b , d ;//该变量用于储存sentence的长度
  10.         int i = 0 ,j = 0 ,k = 0;//储存字符数组的重要变量
  11.         
  12.         
  13.         printf("Please input a sentence:");
  14.         
  15.         while((c[100]=getchar())!='*')
  16.                
  17.         {
  18.                
  19.                 a  =  b  =  d  =sizeof(c);
  20.                 while(c[i]==' '|| c[i]=='\t'|| c[i]=='\n')
  21.                 {
  22.                         ++blanks;
  23.                         while( a )
  24.                         {
  25.                                 blank[i]=c[i];
  26.                                 
  27.                                 a--;
  28.                                 i++;
  29.                         }
  30.                         
  31.                 }
  32.                
  33.                
  34.                 while(   '0'<c[j]   ||   c[j]<'9'  )
  35.                 {
  36.                         ++number;
  37.                         while( b )
  38.                         {
  39.                                 num[j]=c[j];
  40.                                 
  41.                                 b--;
  42.                                 j++;
  43.                         }
  44.                         
  45.                         
  46.                 }
  47.                 while( c[k]!=' ' || c[k]!='\t' || c[k]!='\n' || c[k]<'0' || c[k]>'9' )
  48.                 {
  49.                         ++others;
  50.                         while( d )
  51.                         {
  52.                                 other[k]=c[k];
  53.                                 d--;
  54.                                 k++;
  55.                         }
  56.                         
  57.                 }
  58.                
  59.                
  60.         }
  61.         
  62.         
  63.         printf("There are %d blanks in this sentence \n",blanks);
  64.         for(i=1;i<a;i++)
  65.         {
  66.                 printf("%c ",blank[i]);
  67.                 while(i%5==0)
  68.                 {
  69.                         printf("\n");
  70.                 }
  71.         }
  72.         
  73.         
  74.         
  75.         printf("There are %d numbers in this sentence\n",number);
  76.         
  77.         for(j=1;j<a;j++)
  78.         {
  79.                 printf("%c ",num[j]);
  80.                 while(j%5==0)
  81.                 {
  82.                         printf("\n");
  83.                 }
  84.         }
  85.         
  86.         printf("There are %d other characters in this sentence\n",others);
  87.         
  88.         
  89.         for(k=1;k<a;k++)
  90.         {
  91.                 printf("%c ",other[k]);
  92.                 while(k%5==0)
  93.                 {
  94.                         printf("\n");
  95.                 }
  96.         }
  97.         
  98. }
复制代码

一开始我会出现不知道如何使用getchar输入一串字符,然后分别储存在数组之中

然后我想了挺久(本人比较蠢),想出了个解决方法
  1. #include<stdio.h>

  2. int main()
  3. {
  4.         char a[10]={ 0 },c[10]={ 0  };
  5.         int  k ,   i=0 , j=0 ;
  6.         printf("Please input a sentence :");
  7.         while  ( ( c[j]=getchar() )!='\n')
  8.         {
  9.                 a[i++]=c[j++];
  10.         }

  11.         j=0;
  12.         for(k=0;k<=i;k++)
  13.         {
  14.                 printf("%c\n",c[j++]);
  15.         }
  16. }
复制代码



写出来之后,打算使用里面的循环方法套用到原函数
但是套用进去之后发现运行的时候,只要按下回车键就会报错
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-8-12 19:09:45 | 显示全部楼层
对了,还有一点,本人使用的是VC++6.0
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-6 16:49:08 | 显示全部楼层
编写一个用来统计输入的各个数字,空白符以及所有其他字符出现次数的程序,分别存储在变量num[10],blank,othersl里边分别打印出来下面是我自己编写的程序


#include<stdio.h>//为什么程序运行的时候,按下F6之后还需要按多一下回车键才能继续运行

void main()

{
        char num[100]={ 0 } , blank[100]={ 0 } , other[100]={ 0 };//所有字符储存于这些数组中
        char c[100]={ 0 };
        int  blanks , number, others;//此处定义的变量用来存放所计算数字,空白符以及其他字符出现次数
        blanks=number=others=0;
        
        int a , b , d ;//该变量用于储存sentence的长度
        int i = 0 ,j = 0 ,k = 0;//储存字符数组的重要变量
        
        
        printf("Please input a sentence:");
        
        while((c[100]=getchar())!='*')
               
        {
               
                a  =  b  =  d  =sizeof(c);
                while(c[i]==' '|| c[i]=='\t'|| c[i]=='\n')
                {
                        ++blanks;
                        while( a )
                        {
                                blank[i]=c[i];
                                
                                a--;
                                i++;
                        }
                        
                }
               
               
                while(   '0'<c[j]   ||   c[j]<'9'  )
                {
                        ++number;
                        while( b )
                        {
                                num[j]=c[j];
                                
                                b--;
                                j++;
                        }
                        
                        
                }
                while( c[k]!=' ' || c[k]!='\t' || c[k]!='\n' || c[k]<'0' || c[k]>'9' )
                {
                        ++others;
                        while( d )
                        {
                                other[k]=c[k];
                                d--;
                                k++;
                        }
                        
                }
               
               
        }
        
        
        printf("There are %d blanks in this sentence \n",blanks);
        for(i=1;i<a;i++)
        {
                printf("%c ",blank[i]);
                while(i%5==0)
                {
                        printf("\n");
                }
        }
        
        
        
        printf("There are %d numbers in this sentence\n",number);
        
        for(j=1;j<a;j++)
        {
                printf("%c ",num[j]);
                while(j%5==0)
                {
                        printf("\n");
                }
        }
        
        printf("There are %d other characters in this sentence\n",others);
        
        
        for(k=1;k<a;k++)
        {
                printf("%c ",other[k]);
                while(k%5==0)
                {
                        printf("\n");
                }
        }
        
}


一开始我会出现不知道如何使用getchar输入一串字符,然后分别储存在数组之中

然后我想了挺久(本人比较蠢),想出了个解决方法
#include<stdio.h>

int main()
{
        char a[10]={ 0 },c[10]={ 0  };
        int  k ,   i=0 , j=0 ;
        printf("Please input a sentence :");
        while  ( ( c[j]=getchar() )!='\n')
        {
                a[i++]=c[j++];
        }

        j=0;
        for(k=0;k<=i;k++)
        {
                printf("%c\n",c[j++]);
        }
}




写出来之后,打算使用里面的循环方法套用到原函数
但是套用进去之后发现运行的时候,只要按下回车键就会报错

@FishC_GPT
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 00:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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