我需要我的程序输入用户想要输入的句子数,然后输入这些句子。然后,通过传递函数letter()
,我想让它计算每个字母在字符串中出现的次数。不过,我遇到了以下问题:计算一个句子的字母给出随机输出
- 当我输入的行数,该程序只要求用户输入1小于输入的号码(即,如果我想2句,我只提示一)。
- 字母计数无法正常工作。这似乎是一种随机的。
另外我想知道我是否正确使用我的二维数组(即我是否正确填充它,是否正确地将它传递给函数)。对于数组str[][]
,我希望第一个框表示句子数,第二个表示每行中的字符数。
这里是我的代码:
#include <stdio.h>
void letter(int n, char str[][80]){
char c = 'a';
char alpha[26];
int ltrcnt[26];
for(int i = 0; i < 26; i++){
ltrcnt[i] = 0;
}
for(int i = 0; i < 26; i++){
for(int j = 0; j < 26; j++){
for(int k = 0; k < 26; k++){
if(str[i][j] == c){
ltrcnt[k]++;
}
c++;
}
}
}
c = 'a';
for(int i = 0; i < 26; i++){
printf("%c: %d\n", c, ltrcnt[i]);
c++;
}
}
int main(void){
int n;
printf("Enter number of lines: ");
scanf("%d", &n);
char str[n][80];
printf("Enter a sentecne: ");
for(int i = 0; i < n; i++){
fgets(str[i], 80, stdin);
}
letter(n, str);
}
随机你的意思是你可以进入同一个句子两次,你会得到不同的结果如何? –