C语言题目:编一个程序,输入5个字符,从中找出最大的字符并输出。

编一个程序,输入5个字符,从中找出最大的字符并输出。要求用字符数组存放这5个字符,用指针数组元素分别指向这5个字符。
算法分析如下:
(1) 用字符型一维数组a[5]存放5个字符;
(2) 用一维指针数组p[5]分别指向数组a的5个元素,即*p[i]就是a[i];(可用次数型循环结构实现指向)
(3) 用次数型循环输入5个字符
(4) 首先把a[0]的址赋予指针地变量max,再用次数型循环寻找最大字符串并用指针变量max记录。
(5) 最后输出最大字符。

麻烦看一下我的程序编得问题出在哪里,多谢了。
#include<stdio.h>
void main()

{char a[6],*p[5],*max,t;
int i;
gets(a);

for(i=0;i<5;i++)
p[i]=&a[i];

*max=*p[0];

for(i=0;i<5;i++)
{if(*p[i]>*max)
*max=*p[i];
}

printf("%c\n",*max);
}

第1个回答  推荐于2016-06-16
#include<stdio.h>
void main()

{char a[6],*p[5],t;
int i;
gets(a);

for(i=0;i<5;i++)
p[i]=&a[i];

char *max=p[0];

for(i=0;i<5;i++)
{if(*p[i]>*max)
*max=*p[i];
}

printf("%c\n",*max);
getchar();
}
max没有初始化
还有不会的问我本回答被提问者采纳
第2个回答  2011-05-28
#include<stdio.h>
void main()

{char a[6],*p[5],*max,t;
int i;
gets(a);

for(i=0;i<5;i++)
p[i]=&a[i];

max=p[0]; //改过!改过!改过!改过!改过!改过!

for(i=0;i<5;i++)
{if(*p[i]>*max)
max=p[i]; //改过!改过!改过!改过!改过!改过!

}

printf("%c\n",*max);
}
第3个回答  2011-05-28
呵呵!! 将 max=*p[0]; 改为
for(i=0;i<=4;i++)
max=p[i];就好了!!你可以看看!!!
相似回答