c语言 输入一个字符串,输出其中ASCII值最大的符号 大神们帮小白看下哪里错了

/*4、输入一个字符串,输出其中ASCII值最大的符号*/
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
char a[100];
int i=1;
char max;
printf("请输入一个字符串\n");
gets(a);
max=a[0];
while(a[i++]!='\0'){
if(max<a[i]){
max=a[i];
}
else{
continue;
}

}
printf("最大为::%s",max);
system("PAUSE");
return 0;
}

max是字符型,应该以%c格式输出。
另外else语句是多余的,不需要此语句。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-05
在while条件中最好不要用++
现在你的程序的while条件是这样判断的:当前a[i]!=0时,继续循环,但循环中不幸要用到a[i],而经过判断的a[i]由于在条件判断完成后执行i++导致循环中的a[i]是条件判断后面的一个字符。
建议修改成:
while( a[i] )
{ if ( max<a[i] ) max=a[i];
i++;
}本回答被提问者采纳
相似回答