请编写一个函数 void fun(char *tt,int pp[]),统计在tt字符串中'a'到

请编写一个函数 void fun(char *tt,int pp[]),统计在tt字符串中'a'到' z'26个字母各自出现的次数,并依次放在pp所指数组中。 例如:当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:3 3 3 2 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <conio.h> #include <stdio.h> #include <stdlib.h> void fun(char*tt,int pp[] ) { } void main( ) { char aa[1000]; int bb[26], k; system("CLS"); printf("\nPlease enter a char string : ") ; scanf("%s",aa); fun(aa,bb); for (k=0 ;k<26 ; k++) printf("%d ",bb[k]) ; printf("\n "); }

在不改变主函数的前提下,补充fun函数,代码如下:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void fun(char*tt,int pp[] )
{
int t;
for(t=0;t<26;t++)
{
pp[t]=0;
}
while(*tt!='\0')
{
t=*tt-'a';
pp[t]++;
tt++;
}

}
void main( )
{
char aa[1000];
int bb[26], k;
system("CLS");
printf("\nPlease enter a char string : ") ;
scanf("%s",aa);
fun(aa,bb);
for (k=0 ;k<26 ; k++)
printf("%d ",bb[k]) ; printf("\n ");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-12
#include <conio.h> 
#include <stdio.h> 
#include <stdlib.h>   
void fun(char*tt,int pp[] ) { 
char *p = tt;
char c;
for (int i = 0; i < 26; ++i){
pp[i] = 0;
}
while (c = *p++){
pp[c - 'a']++;
}

void main( ) {  
char aa[1000]; 
int  bb[26], k;  
system("CLS");  
printf("\nPlease enter a char string : ") ; 
scanf("%s",aa); 
fun(aa,bb); 
for (k=0 ;k<26 ; k++)    
printf("%d ",bb[k]) ;  
printf("\n "); 
}

本回答被网友采纳
第2个回答  2016-05-12
main()
{
void fun(char *tt,int pp[6]);
char s[500],i;
int a[6];
printf("input char.\n");
scanf("%s",s);
fun(s,a);
for(i=0;i<6;i++)
printf("%d ",a[i]);
}
void fun(char *tt,int pp[6])
{
pp[0]=pp[1]=pp[2]=pp[3]=pp[4]=pp[5]=0;
while(*(tt++)!='\0')
{
if(*tt=='a') pp[0]++;
if(*tt=='a') pp[0]++;
if(*tt=='a') pp[0]++;
第3个回答  2018-03-27
#include<stdio.h>
#include<string.h>
void fun(char *tt,int pp[]);
int main()
{
char *tt="abcdefgabcdeabc";
int pp[26];
fun(tt,pp);
for(int i=0;i<26;i++)
{
printf("%d ",pp[i]);
}
return 0;
}
void fun(char *tt,int pp[])
{
int i;
for(i=0;i<26;i++)
{
pp[i]=0;
}
for( ;*tt!='\0';tt++)
{
if(*tt>='a'&&*tt<='z')
pp[*tt-'a']++;
}
}