C语言 简单的for 为啥有问题 在线等9点下线

来源:百度知道 编辑:UC知道 时间:2024/06/12 01:01:41
void main()
{
int CHa[30];
int Isum,i,j;

printf("char qing shu ru duo ge zi fu : ");

scanf("%s",CHa);
for(i=65;i<=122 ;i++)
{
Isum=0;
for(j=0;j<30;j++)
if(CHa[j]==i)
Isum++;

printf(" %c %d ",i,Isum);
}

puts(CHa);
getch();
}

下面的程序能正确运行:

void main()
{
int CHa[30];
int Isum,i,j;
printf("char qing shu ru duo ge zi fu : ");
scanf("%s",CHa);
for(i='A';i<='Z';i++)
{
Isum=0;
for(j=0;j<30;j++)if((char)CHa[j]==(char)i)Isum++;
printf(" %c %d ",i,Isum);
}
puts(CHa);
getch();
}

关键的原因是类型:for(j=0;j<30;j++)if((char)CHa[j]==(char)i)Isum++;