C语言改错

如题所述

1、if(('a'<=c[k]<='z')这一句错误,应该改成:

if(c[k]>='a'&&c[k]<='z')

2、gets(c[50]);这一句错误,改成:

gets(c);

3、int n[26]={0},k;这一句改成:int n[26]={0},k=0;

4、while(c[k]!='0')改成:while(c[k]!='\0')

修改后的程序如下:

#include "stdio.h"
void main()
{
    char c[50];
    int n[26]={0},k=0;
    gets(c);
    puts(c);
    while(c[k]!='\0')
    if(c[k]>='a'&&c[k]<='z')
    {
     n[c[k]-'a']+=1;
     k++;
    }
    for(k=0;k<26;k++) 
     printf("%c:%d\n",k+'a',n[k]);
}

已经运行通过!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-12
#3 int n[26]={0}, k=0;
#5 gets(c) ;
#6 while( c[k]!='\0' )
#7 if ( 'a'<=c[k] && c[k] <='z' )
#10 for( k=0;k<26;k++ ) //去掉分号
第2个回答  2015-01-12
#3 int n[26]={0},k=0; /* k 没初始化*/
#5 gets(c); /* 去掉长度,数组名就是首地址 */
#6 while(c[k]!='\0') /*少了 \ */
#7 if('a'<=c[k] && c[k]<='z') /* 用&&方式连接*/
#10 for(k=0;k<26;k++) /* 去掉分号 */
第3个回答  2015-01-12
#include<stdio.h>
void main()
{
int n[26]={0},k,i;
char c[50];

gets(c[50]);

while(c[k]!='\0')
{
if((c>=‘a’)&&(a<='z'))

{
n[c[k]-'a']+=1;
}
}
for(k=0;k<26;k++)

{
printf("%c:,%d",n[k]+'a',n[k]);

}

}
第4个回答  2015-01-12
第七句
if('a'<=c[k] && c[k]<='z')
相似回答