vc++6.0环境下写C语言,关于数组指针的东西,菜鸟求教啊!
4.编一个程序,输入5个字符,从中找出最大的字符并输出。要求用字符数组存放这5个字符,用指针数组元素分别指向这5个字符。算法分析如下:(1)用字符型一维数组a[5]存放5...
4.编一个程序,输入5个字符,从中找出最大的字符并输出。要求用字符数组存放这5个字符,用指针数组元素分别指向这5个字符。
算法分析如下:
(1) 用字符型一维数组a[5]存放5个字符;
(2) 用一维指针数组p[5]分别指向数组a的5个元素,即*p[i]就是a[i];(可用次数型循环结构实现指向)
(3) 用次数型循环输入5个字符
(4) 首先把a[0]的地址赋予指针变量max,再用次数型循环寻找最大字符串并用指针变量max记录。
(5) 最后输出最大字符。 展开
算法分析如下:
(1) 用字符型一维数组a[5]存放5个字符;
(2) 用一维指针数组p[5]分别指向数组a的5个元素,即*p[i]就是a[i];(可用次数型循环结构实现指向)
(3) 用次数型循环输入5个字符
(4) 首先把a[0]的地址赋予指针变量max,再用次数型循环寻找最大字符串并用指针变量max记录。
(5) 最后输出最大字符。 展开
2个回答
展开全部
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("请输入5个字符:");
char a[5],*p[5],*max;
int i=0;
for(i=0;i<5;i++)
{
scanf("%c",&a[i]);
}
for(i=0;i<5;i++)
{
p[i]=&a[i];
}
max=p[0];
for(i=1;i<5;i++)
{
if(*max<*p[i])
{
max=p[i];
}
}
printf("最大的字符为:%c\n",*max);
return 0;
int main(int argc, char* argv[])
{
printf("请输入5个字符:");
char a[5],*p[5],*max;
int i=0;
for(i=0;i<5;i++)
{
scanf("%c",&a[i]);
}
for(i=0;i<5;i++)
{
p[i]=&a[i];
}
max=p[0];
for(i=1;i<5;i++)
{
if(*max<*p[i])
{
max=p[i];
}
}
printf("最大的字符为:%c\n",*max);
return 0;
更多追问追答
追问
你好,这里max=p[0]; 和*max =a[0]是一样意思吗?为什么用*max =a[0]会有错误呢?
追答
max 是变量, p[0]是地址,两者类型相同,可以将p[0]赋值给max,即将a[0]的地址赋值给max;*max即取max所指地址的值,是常量,不能给常量赋值,所以会出错。我是这样认为的,对不对就不知道了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询