朋友们帮我看看,有十个整数的数组用指针找出最大最小值。运行成功了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);
} 展开
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);
} 展开
3个回答
展开全部
#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的判断有一点问题……
不过这个方法我还是比较欣赏的
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的判断有一点问题……
不过这个方法我还是比较欣赏的
展开全部
在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);
}
你可以这样写:
#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);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
注意数组下标!
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;
}
注意数组下标!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询