谁帮我看一下这段代码,半天出不来,谢谢了,万分感谢,C语言编程

main(){//定义一个字符型数组,放置在a[100]中//因为有26个英文字母,所以定义一个整型变量b[26],记载每个字母统计的个数,ch用来接收一个字符chara... main(){
//定义一个字符型数组,放置在a[100]中
//因为有26个英文字母,所以定义一个整型变量b[26],记载每个字母统计的个数,ch用来接收一个字符
char a[100],ch;
int b[26]={0};
int i;
for(i=0;i<100;i++)
a[i]=rand()%26+'a';
printf("输出随机产生的字符:\n");
for(i=0;i<100;i++)
printf("%2c",a[i]);
printf("\n");
/********************************************** 我认为是这里有问题,谁能帮帮我,谢谢了
printf("统计其中每个字母出现的次数:\n");
for(i=0;i<100;i++){
b[i]+=int(a[i]-'a');
}
for(i=0;i<26;i++)
printf("%2d",b[i]);
*******************************************/
}
//使用rand()产生100个小写字母,统计其中每个字母出现的次数

这是题目 谢谢了 这可惜 我分不高 但还是谢谢了
展开
 我来答
沧海雄风2009
2012-03-19 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:3433万
展开全部
输出随机产生的字符:
p h q g h u m e a y l n l f d x f i r c v s c x g g b w k f n q d u x w f n f o
z v s r t k j p r e p g g x r p n r v y s t m w c y s y y c q p e v i k e f f m
z n i m k k a s v w s r e n z k y c x f
统计其中每个字母出现的次数:
a-> 2
b-> 1
c-> 5
d-> 2
e-> 5
f-> 8
g-> 5
h-> 2
i-> 3
j-> 1
k-> 6
l-> 2
m-> 4
n-> 6
o-> 1
p-> 5
q-> 3
r-> 6
s-> 6
t-> 2
u-> 2
v-> 5
w-> 4
x-> 5
y-> 6
z-> 3
Press any key to continue

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main(){
//定义一个字符型数组,放置在a[100]中
//因为有26个英文字母,所以定义一个整型变量b[26],记载每个字母统计的个数,ch用来接收一个字符
char a[100],ch;
int b[26]={0};
int i;
for(i=0;i<100;i++)
a[i]=rand()%26+'a';
printf("输出随机产生的字符:\n");
for(i=0;i<100;i++)
printf("%2c",a[i]);
printf("\n");
//********************************************* 我认为是这里有问题,谁能帮帮我,谢谢了
printf("统计其中每个字母出现的次数:\n");
for(i=0;i<100;i++)
{
b[a[i]-'a']++; //a[i]-'a' 则是数字 那么 b[0] 是字符a的计数 其他以此类推
}
for(i=0;i<26;i++)
printf("%c->%2d\n",'a'+i,b[i]);

//******************************************
}
追问
谢谢啊,我刚开始也是这么写的,可是老报错。不过还得谢谢你了
百度网友9c96341a7
2012-03-19 · 超过18用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:79.5万
展开全部
别的先不说, b[i]是怎么回事??
b[i]中 i应该是0-25中的数,上面从0-99循环,肯定会溢出报错的;

还有,你 统计其中每个字母出现的次数 的思路也不对。

你有没有发现每次产生的随机字符都是一致的?
建议在for循环之前加上
srand((unsigned int)time(NULL));

头文件#include <time.h>
追问
其实不用加也行  我那个东西,就是上面人说的地方错了 谢谢你解答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
songyunqi123
2012-03-19 · TA获得超过148个赞
知道答主
回答量:46
采纳率:0%
帮助的人:27.8万
展开全部
#include<stdio.h>
#include<stdlib.h>
void main(){
//定义一个字符型数组,放置在a[100]中
//因为有26个英文字母,所以定义一个整型变量b[26],记载每个字母统计的个数,ch用来接收一个字符
char a[100],ch;
int b[26]={0};
int i;
for(i=0;i<100;i++)
a[i]=rand()%26+'a';
printf("输出随机产生的字符:\n");
for(i=0;i<100;i++)
printf("%2c",a[i]);
printf("\n");
/********************************************** 我认为是这里有问题,谁能帮帮我,谢谢了*/
printf("统计其中每个字母出现的次数:\n");
for(i=0;i<100;i++){
b[a[i]-'a']+=1;
}
for(i=0;i<26;i++)
printf("%2d",b[i]);
/*******************************************/
}
追问
谢谢你了  但是选择满意答案 自由一个   但还是 要谢谢你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式