
谁帮我看一下这段代码,半天出不来,谢谢了,万分感谢,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个小写字母,统计其中每个字母出现的次数
这是题目 谢谢了 这可惜 我分不高 但还是谢谢了 展开
//定义一个字符型数组,放置在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个小写字母,统计其中每个字母出现的次数
这是题目 谢谢了 这可惜 我分不高 但还是谢谢了 展开
3个回答
展开全部
输出随机产生的字符:
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]);
//******************************************
}
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]);
//******************************************
}
追问
谢谢啊,我刚开始也是这么写的,可是老报错。不过还得谢谢你了
展开全部
别的先不说, b[i]是怎么回事??
b[i]中 i应该是0-25中的数,上面从0-99循环,肯定会溢出报错的;
还有,你 统计其中每个字母出现的次数 的思路也不对。
你有没有发现每次产生的随机字符都是一致的?
建议在for循环之前加上
srand((unsigned int)time(NULL));
头文件#include <time.h>
b[i]中 i应该是0-25中的数,上面从0-99循环,肯定会溢出报错的;
还有,你 统计其中每个字母出现的次数 的思路也不对。
你有没有发现每次产生的随机字符都是一致的?
建议在for循环之前加上
srand((unsigned int)time(NULL));
头文件#include <time.h>
追问
其实不用加也行 我那个东西,就是上面人说的地方错了 谢谢你解答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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]);
/*******************************************/
}
#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]);
/*******************************************/
}
追问
谢谢你了 但是选择满意答案 自由一个 但还是 要谢谢你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询