鱼C论坛

 找回密码
 立即注册
查看: 2244|回复: 6

求用数组简化一个程序!!!!!!!!!

[复制链接]
发表于 2014-4-6 17:48:20 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>
#include<ctype.h>
int main(void)
{
        int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;
        int blank=0;
        int line_break=0;
        char ch;
        a=b=c=d=e=f=g=h=i=j=k=l=m=n=o=p=q=r=s=t=u=v=w=x=y=z=0;

        printf("input a string chars: \n");
        while((ch=getchar())!='#')
        {
                if(ch=='a')
                        a++;
                else if(ch=='b')
                        b++;
                else if(ch=='c')
                        c++;
                else if(ch=='d')
                        d++;
                else if(ch=='e')
                        e++;
                else if(ch=='f')
                        f++;
                else if(ch=='g')
                        g++;
                else if(ch=='h')
                        h++;
                else if(ch=='i')
                        i++;
                else if(ch=='j')
                        j++;
                else if(ch=='k')
                        k++;
                else if(ch=='l')
                        l++;
                else if(ch=='m')
                        m++;
                else if(ch=='n')
                        n++;
                else if(ch=='o')
                        o++;
                else if(ch=='p')
                        p++;
                else if(ch=='q')
                        q++;
                else if(ch=='r')
                        r++;
                else if(ch=='s')
                        s++;
                else if(ch=='t')
                        t++;
                else if(ch=='u')
                        u++;
                else if(ch=='v')
                        v++;
                else if(ch=='w')
                        w++;
                else if(ch=='x')
                        x++;
                else if(ch=='y')
                        y++;
                else if(ch=='z')
                        z++;
                else if(ch==' ')
                        blank++;
                else if(ch=='\n')
                        line_break++;
        }
        printf("letter a=%d \n",a);
        printf("letter b=%d \n",b);
        printf("letter c=%d \n",c);
        printf("letter d=%d \n",d);
        printf("letter e=%d \n",e);
        printf("letter f=%d \n",f);
        printf("letter g=%d \n",g);
        printf("letter h=%d \n",h);
        printf("letter i=%d \n",i);
        printf("letter j=%d \n",j);
        printf("letter k=%d \n",k);
        printf("letter l=%d \n",l);
        printf("letter m=%d \n",m);
        printf("letter n=%d \n",n);
        printf("letter o=%d \n",o);
        printf("letter p=%d \n",p);
        printf("letter q=%d \n",q);
        printf("letter r=%d \n",r);
        printf("letter s=%d \n",s);
        printf("letter t=%d \n",t);
        printf("letter u=%d \n",u);
        printf("letter v=%d \n",v);
        printf("letter w=%d \n",w);
        printf("letter x=%d \n",x);
        printf("letter y=%d \n",y);
        printf("letter z=%d \n",z);
        printf("blank=%d \n",blank);
        printf("line_blank=%d \n",line_break);
getchar();
getchar();
return(0);
}
这个程序的作用是把用户输入的字符统计,按#退出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-6 18:11:41 | 显示全部楼层
#include<stdio.h>
int main()
{
        char ch[26];
        int n[26];
        int i,t;
        char str;
s:        setbuf(stdin,NULL);//防止前一次的输入的影响
        t = 97;
        for(i = 0;i<26;i++)//只检测 a,b....z
        {
                ch[i] = t;
                t++;
        }

        for(i = 0;i<26;i++)//个数清零
        {
                n[i] = 0;
        }

        while((str = getchar())!='\n')//判断
        {
                if(str == '#')
                {
                        return 0;
                }
                for(i = 0;i<26;i++)
                {
                        if(ch[i] == str)
                        {
                                n[i]++;
                                break;
                        }
                }
        }
        for(i = 0;i<26;i++)//输出
        {
                if(n[i] != 0)
                {
                        printf("%c : %d\n",ch[i],n[i]);
                }
        }
        goto s;//再次输入

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-6 18:14:55 | 显示全部楼层
你能把这个程序写完我真心佩服你
我估计我会不耐烦的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-6 18:53:52 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-6 20:14:45 | 显示全部楼层
记得我等级考试时编程题就是统计a~z字母各有多少个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-6 20:28:18 | 显示全部楼层
那你说啊!用数组
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-7 23:54:52 | 显示全部楼层

根据你代码的要求改的,还可以更加简单,如果你需要

本帖最后由 谭斌谭斌 于 2014-4-7 23:56 编辑
#include<stdio.h>

void fun()
{
        int arry[26] = { 0 , };
        int val;
        int i = 0;
        char c;
        
        while( ( c = getchar() ) != '#' )
        {
                val = c - 'a';
                arry[ val ]++;
        }
        
        c = 'a';
        while( i != 26 )
        {
                printf( "letter %c=%d \n" , c++ , arry[ i++ ] );
        }
}

int main()
{
        fun();
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 00:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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