请高手用C语言解答下面这个问题,不要用指针/*今天的题目:小明最近对概率问题很感兴趣.一天,小明和小红一起玩一个概率游戏,首先小明给出一个字母和一个单词,然后由小红计算这个字母
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/18 15:47:04
请高手用C语言解答下面这个问题,不要用指针/*今天的题目:小明最近对概率问题很感兴趣.一天,小明和小红一起玩一个概率游戏,首先小明给出一个字母和一个单词,然后由小红计算这个字母
请高手用C语言解答下面这个问题,不要用指针
/*今天的题目:
小明最近对概率问题很感兴趣.一天,小明和小红一起玩一个概率游戏,首先小明给出一个字母和一个单词,然后由小红计算这个字母在这个单词中出现的概率.
字母不区分大小写.
例如,给定的字母是a,单词是apple,那么概率是0.20000.
输入格式
输入包含多组测试数据.每组数据包含一个字母和一个单词.单词的长度不超过200.
输出
对于每一个输入,输出对应的概率,结果保留5位小数.
样例输入
a apple
c Candy
a banana
样例输出
0.20000
0.20000
0.50000
0.50000
请高手用C语言解答下面这个问题,不要用指针/*今天的题目:小明最近对概率问题很感兴趣.一天,小明和小红一起玩一个概率游戏,首先小明给出一个字母和一个单词,然后由小红计算这个字母
#include<stdio.h>
#include<string.h>
char trans(char a){ //定义函数:将大写改为小写
if(a>='A'&&a<'Z')
a+=32;
return a;
}
void main(){
char c[20],str[20][200]; //假定数据最多有20组,每个单词最长200个字母
int i=0,j;
float sum[20];
while((c[i]=getchar())!=EOF){ //输入字母
gets(str[i]); //输入单词
sum[i]=0;
for( j=1;str[i][j]!='\0';j++){
if(trans(str[i][j])==trans(c[i])){ //用trans函数保证比较值为小写字母
sum[i]+=1; //记录重复个数
}
}
sum[i]/=(float)j-1; //计算重复率
i++; //i可用来记录输入个数
}
for(j=0;j<i;j++)
printf("%.5f\n",sum[j]);
}
我不知道你题干里只有3组输入为什么会有四个输出.
有问题请追问.
满意望采纳!