C语言中怎样用指针找出一维数组中的最大值和最小值并输出它们的下标
#include<stdio.h>
int main()
{
int a[10],n,max,min,maxxiabiao,minxiabiao;
for(n=0;n<=9;n++)
{
scanf("%d",&a[n]);
}
max=min=a[0];
maxxiabiao=minxiabiao=0;
for(n=0;n<=9;n++)
{
if(a[n]>max)
{
max=a[n];
maxxiabiao=n;
}
else if(a[n]<min)
{
min=a[n];
minxiabiao=n;
}
}
printf("max=%d,xiabiao=%d\n",max,maxxiabiao);
printf("min=%d,xiabiao=%d\n",min,minxiabiao);
return 0;
}
运行效果:
扩展资料:
return 0代表程序正常退出。return是C++预定义的语句,它提供了终止函数执行的一种方式。当return语句提供了一个值时,这个值就成为函数的返回值。
return语句用来结束循环,或返回一个函数的值。
1、return 0,说明程序正常退出,返回到主程序继续往下执行。
2、return 1,说明程序异常退出,返回主调函数来处理,继续往下执行。return 0或return 1对程序执行的顺序没有影响,只是大家习惯于使用return(0)退出子程序而已。
int s[N],i,j,a,*max;
max=s;
for(i=0,i<N-1,i++)
for(j=1,j<N,j++)
if(s[j]>s[i])
{max=&s[j];
a=j;}
最小稍微改下
void main()
{ int a[100],i,j,max=-32000,min=32000;
int *p;
for(p=a;p<a+10;p++)
scanf("%d",p);
for(p=a;p<a+10;p++)
if(max<*p)
{max=*p;
i=p-a;
}
for(p=a;p<a+10;p++)
if(min>*p)
{min=*p;
j=p-a;
}
printf("%d max=%d\n%d min=%d\n",i,max,j,min);
}