鱼C论坛

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

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

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

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

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

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

编写一个用来统计输入的各个数字,空白符以及所有其他字符出现次数的程序,分别存储在变量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++]);
        }
}


写出来之后,打算使用里面的循环方法套用到原函数
但是套用进去之后发现运行的时候,只要按下回车键就会报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-8-12 19:09:45 | 显示全部楼层
对了,还有一点,本人使用的是VC++6.0
想知道小甲鱼最近在做啥?请访问 -> 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 03:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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