不懂
编写一个函数void fun(char*q,int pp[])统计在q字符串中'a'到'z'26个小写字母各自出现的次数,并依次放在数组pp中。#include <stdio.h>
#include <string.h>
void main()
{
char tt;
int ii;
int pp;
gets(tt);
for(ii=0;ii<100;ii++)
{
if(tt='a') {pp++;}
else if(tt='b'){pp++;}
else if(tt='c'){pp++;}
else if(tt='d'){pp++;}
else if(tt='e'){pp++;}
else if(tt='f'){pp++;}
else if(tt='g'){pp++;}
else if(tt='h'){pp++;}
else if(tt='i'){pp++;}
else if(tt='j'){pp++;}
else if(tt='k'){pp++;}
else if(tt='l'){pp++;}
else if(tt='m'){pp++;}
else if(tt='n'){pp++;}
else if(tt='o'){pp++;}
else if(tt='p'){pp++;}
else if(tt='q'){pp++;}
else if(tt='r'){pp++;}
else if(tt='s'){pp++;}
else if(tt='t'){pp++;}
else if(tt='u'){pp++;}
else if(tt='v'){pp++;}
else if(tt='w'){pp++;}
else if(tt='x'){pp++;}
else if(tt='y'){pp++;}
else if(tt='z'){pp++;}
}
for(ii=0;ii<26;ii++)
{
printf("%d",pp);
}
} 本帖最后由 jackz007 于 2022-12-25 19:57 编辑
#include <stdio.h>
#include <stdio.h>
int main()
{
char pp = {0} , tt ;
gets(tt) ;
for(int i = 0 ; tt ; i ++) pp - 'a'] ++ ;
for(int i = 0 ; i < 26 ; i ++) if(pp) printf("%c : %d\n" , 'a' + i , pp) ;
}
编译运行实况:
D:\\C>g++ -o x x.c
D:\\C>x
abcde
a : 1
b : 1
c : 1
d : 1
e : 1
D:\\C> #include <stdio.h>
#include <string.h>
#include <ctype.h> // 加这个头文件可以用 islower()
char str;
int pp;
int len;
void fun(char * p, int pp[]){
for(int i = 0; i < len; i++){
if(islower(p)){ // 判断是不是小写
pp - 'a']++;// c中这些字母按照 ASCII 码存储, a 的码是 97, b = 98 等等
// 因此每个字母对应的位置就是减去 a(97) 的结果, 比如 'b' - 'a' = 1...
}
}
}
int main(){
gets(str);
len = strlen(str);// 字符串长度
fun(str, pp);
for(int i = 0; i < 26; i++){
printf("%d ", pp);
}
return 0;
} 你第一个for循环,ii取不到100这么多的,数组越界了啊
for(ii=0;ii<100;ii++)
页:
[1]