一个简单C练习题,郁闷了很久

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

题目如下:

输入十个字符串,长度在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();

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航