朋友们帮我看看,有十个整数的数组用指针找出最大最小值。运行成功了max不对,但是min是对的 帮忙解释谢谢

#include<stdio.h>intmain(){inta[10],i,*p,max,min;printf("Enter10integers:\n");for(i=1... #include<stdio.h>
int main()
{
int a[10],i,*p,max,min;
printf("Enter 10 integers:\n");
for (i=1;i<=10;i++)
scanf ("%d",&a[i]);
max=a[1];
for (p=a;p<=a;p++)
if(max<*p)max=*p;
min=a[1];
for (p=a;p<=a+10;p++)
if(min>*p)min=*p;
printf("最大数是%d\n",max);
printf("最小数是%d\n",min);
}
展开
 我来答
百度网友e094f6d
2010-12-12 · TA获得超过867个赞
知道小有建树答主
回答量:631
采纳率:0%
帮助的人:454万
展开全部
#include<stdio.h>
int main()
{
int a[10],i,*p=NULL,max,min;
printf("Enter 10 integers:\n");
for (i=0;i<10;i++)
scanf ("%d",&a[i]);
max=a[0];
for (p=a;p<=a+9;p++)
if(max<*p)max=*p;
min=a[0];
printf("最小数是%d\n",min);
for (p=a;p<=a+9;p++)
if(min>*p)min=*p;
printf("最大数是%d\n",max);

}
这道题是按照你的改编的,我感觉你的问题主要是对数组的定义,应该从a[0]开始吧,所以应该是*p=a[0],这样就没什么大问题了其他的没有上面问题了,在第一个循环的时候你对*p的判断有一点问题……
不过这个方法我还是比较欣赏的
jian265
2010-12-12 · TA获得超过102个赞
知道答主
回答量:121
采纳率:0%
帮助的人:56.6万
展开全部
在c或c++中,数组下标是从0开始的如a[0],a[1],...而不是你写的从1开始 的。
你可以这样写:

#include<stdio.h>
int main()
{
int a[10],i,*p,max,min;
printf("Enter 10 integers:\n");
for (i=0;i<10;i++)
scanf ("%d",&a[i]);
max=a[0];
min=a[0];
for (p=a;p<a+9;p++){
if(max<*p)max=*p;
if(min>*p)min=*p;
}
printf("最大数是%d\n",max);
printf("最小数是%d\n",min);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huangluo0722
2010-12-12 · TA获得超过242个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:172万
展开全部
#include<stdio.h>
int main()
{
int a[10],i,*p,max,min;
printf("Enter 10 integers:\n");
for (i=1;i<=10;i++)
scanf("%d",&a[i]);
max=a[1];
for (p=a+1;p<=a+10;p++)
if(max<*p)
max=*p;
min=a[1];
for (p=a+1;p<=a+10;p++)
if(min>*p)
min=*p;
printf("最大数是%d\n",max);
printf("最小数是%d\n",min);
return 0;
}
注意数组下标!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式