标题:输入一篇文章,让你统计字符个数
只看楼主
偶成
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-3-4
得分:0 

#include <stdio.h>
#include <string.h>
main()
{
void str_count();
char str[100000];
int J;
gets(str);
J=strlen(str);
str_count(str,J);
}

void str_count(char str[],int J)
{
int T,a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;
for(T=0;T<J;T++)
if(str[T]=='a') a=a+1; /*jjj*/
else if(str[T]=='b')b=b+1;
else if(str[T]=='c')c=c+1;
else if(str[T]=='d')d=d+1;
else if(str[T]=='e')e=e+1;
else if(str[T]=='f')f=f+1;
else if(str[T]=='g')g=g+1;
else if(str[T]=='h')h=h+1;
else if(str[T]=='i')i=i+1;
else if(str[T]=='j')j=j+1;
else if(str[T]=='k')k=k+1;
else if(str[T]=='l')l=l+1;
else if(str[T]=='m')m=m+1;
else if(str[T]=='n')n=n+1;
else if(str[T]=='o')o=o+1;
else if(str[T]=='p')p=p+1;
else if(str[T]=='q')q=q+1;
else if(str[T]=='r')r=r+1;
else if(str[T]=='s')s=s+1;
else if(str[T]=='t')t=t+1;
else if(str[T]=='u')u=u+1;
else if(str[T]=='v')v=v+1;
else if(str[T]=='w')w=w+1;
else if(str[T]=='x')x=x+1;
else if(str[T]=='y')y=y+1;
else if(str[T]=='z')z=z+1;
printf("\na:%d\nb:%d\nc:%d\nd:%d\ne:%d\nf:%d\ng:%d\nh:%d\ni:%d\nj:%d\nk:%d\nl:%d\nm:%d\nn:%d\no:%d\np:%d\nq:%d\nr:%d\ns:%d\nt:%d\nu:%d\nv:%d\nw:%d\nx:%d\ny:%d\nz:%d",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);

}
根据你的原程序,我改动了下,可以算出数组中每个字母出现的次数.


几年前,丢失了求知欲,游荡在游戏世界中. 而今寻找回了求知欲,希望通过自学充实自己.努力中...
2006-03-26 10:43
yylcel
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2005-12-10
得分:0 

#include <stdio.h>
#include <string.h>
void main()
{
void str_count(char str[],int J);//////////
char str[100000];
int J;
gets(str);
J=strlen(str);
str_count(str,J);
}

void str_count(char str[],int J)
{
int T,a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;
for(T=0;T<J;T++)
if(str[T]=='a') a=a+1;
else if(str[T]=='b')b=b+1;
else if(str[T]=='c')c=c+1;
else if(str[T]=='d')d=d+1;
else if(str[T]=='e')e=e+1;
else if(str[T]=='f')f=f+1;
else if(str[T]=='g')g=g+1;
else if(str[T]=='h')h=h+1;
else if(str[T]=='i')i=i+1;
else if(str[T]=='j')j=j+1;
else if(str[T]=='k')k=k+1;
else if(str[T]=='l')l=l+1;
else if(str[T]=='m')m=m+1;
else if(str[T]=='n')n=n+1;
else if(str[T]=='o')o=o+1;
else if(str[T]=='p')p=p+1;
else if(str[T]=='q')q=q+1;
else if(str[T]=='r')r=r+1;
else if(str[T]=='s')s=s+1;
else if(str[T]=='t')t=t+1;
else if(str[T]=='u')u=u+1;
else if(str[T]=='v')v=v+1;
else if(str[T]=='w')w=w+1;
else if(str[T]=='x')x=x+1;
else if(str[T]=='y')y=y+1;
else if(str[T]=='z')z=z+1;
printf("\na:%d\nb:%d\nc:%d\nd:%d\ne:%d\nf:%d\ng:%d\nh:%d\ni:%d\nj:%d\nk:%d\nl:%d\nm:%d\nn:%d\no:%d\np:%d\nq:%d\nr:%d\ns:%d\nt:%d\nu:%d\nv:%d\nw:%d\nx:%d\ny:%d\nz:%d",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);

}

2006-03-26 12:04
维纳斯的恋人
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-3-22
得分:0 
这样子的程序不好,太多if语句

其实可以把if 换成switch 语句来做,程序比较清晰,可读性好多了

她说她都希望没有看到 可是真的发生了 不可能改变 我说我只想我们能像以前一样 真的不可以??
2006-03-26 12:14
crazyrabbit
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:150
专家分:0
注 册:2006-3-15
得分:0 
好呀,不过太长了.不精练的.

http://www./bbs/boke.asp?crazyrabbit.index.html 欢迎大家来此讨论问题!
2006-03-26 13:32
daydayf
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-3-27
得分:0 
这个题目更本就不是让你用IF或是switch之类的.是让你用循环.晕

2006-03-28 17:10
风的呼吸
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-11-16
得分:0 
程序是这样的:
#include<stdio.h>
#include<string.h>
void main()
{char *p,c[1000];
int i,a[26];
printf("input the string");
fflush(stdin);
gets(c);
for(i=0;i<26;i++)a[i]=0;
p=c;
while(*p!=\'0')
{if(*p>='a'&&*p<='z')a[*p-'a']++;
if(*p>='A'&&*p<='Z')a[*p-'A']++;
p++;
}
for(i=0;i<26;i++)printf("%d\n",a[i]);
getch();
}
2006-03-29 22:02
jiangzw625
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2006-3-27
得分:0 


#include <stdio.h>

void main()
{
int sum[123]={0};
char c;

while((c=getchar())!='\n')sum[c]++;
for(c=0;c<=122;c++)if(sum[c]!=0)printf("the count of %c are %d\n",c,sum[c]);

}


马马乎乎
2006-03-30 10:33
jiangzw625
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2006-3-27
得分:0 

#include <stdio.h>

void main()
{
int sum[123]={0};
char c;

while((c=getchar())!='\n')sum[c]++;
for(c=0;c<=122;c++)if(sum[c]!=0)printf("the count of %c are %d\n",c,sum[c]);

}


马马乎乎
2006-03-30 10:34
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
得分:0 
如果只差字母直接用个char alpha[26]就可以了,反正'a'到'z'是连续的。20行之内搞定。

http://myajax95./
2006-03-30 15:21
hb1122
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2006-3-28
得分:0 
哇,看不懂!

偶很笨,但偶很好学,偶很菜,但偶很努力! 希望能得到好多好心的好人帮偶学习! 呵呵!!
2006-03-30 15:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-52658-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.184702 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved