题目如下: 输入十个字符串,长度在20--50之间。检查每个字串,若遇到字母A,就在其后插入一个空格,最后打印全部处理后的字串,并统计26个安母各出现多少次。 以下是我编写的代码,编译通过,但是得不出正确结果。谁给点建议 #include <stdio.h> typedef char* string; void Arrange(string *str,string *arr) { int i,j; int pos; for(i=0;i<10;i++) { j=0;pos=0; while(str[i][j]) { if(str[i][j]=='A') arr[i][pos++]=' '; arr[i][pos++]=str[i][j]; j++; } } } void count(string *str,int *cnt) { char ch; int i,j; int dif; for(i=0;i<10;i++) { j=0; while(str[i][j]) { dif=-1; if((str[i][j]<='Z'&&str[i][j]>='A')) { dif=str[i][j]-'A'; } else if((str[i][j]>='a'&&str[i][j]<='z')) { dif=str[i][j]-'a'; } if(dif!=-1) cnt[dif]++; j++; } } } void print(string *arr) { int i; for(i=0;i<10;i++) { printf("%s\n",arr[i]); } } void main() { string str[10]; int cnt[26]; char arrange[10][80]; int i; char ch; for(i=0;i<26;i++) { cnt[i]=0; }
for(i=0;i<2;i++) { scanf("%s",str[i]); } Arrange(str,arrange); count(str,cnt); print(arrange); printf("\n"); ch='A'; for(i=0;i<10;i++) { printf("%s\n",str[i]); } for(i=0;i<26;i++) { printf("%c ",ch++); } printf("\n"); for(i=0;i<26;i++) { printf("%d ",cnt[i]); } getch();
}
|