C语言中怎样用指针找出一维数组中的最大值和最小值并输出它们的下标

如题所述

1、新建一个工程和.c文件,并且输入主函数和头文件。

2、定义全局变量。

3、定义变量类型。

4、用两个for语句给数组元素赋值。

5、调用求最小值的函数。

6、函数的总体流程如下图。

7、在主函数中输出结果,编译、运行,得到最后结果。

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-07-09

#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)退出子程序而已。

本回答被网友采纳
第2个回答  2011-03-13
最大:
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;}
最小稍微改下
第3个回答  2011-03-13
#include<stdio.h>
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);
}本回答被网友采纳

C语言中怎样用指针找出一维数组中的最大值和最小值并输出它们的下标
1、新建一个工程和.c文件,并且输入主函数和头文件。2、定义全局变量。3、定义变量类型。4、用两个for语句给数组元素赋值。5、调用求最小值的函数。6、函数的总体流程如下图。7、在主函数中输出结果,编译、运行,得到最后结果。

C语言编程:利用指针编写程序,求一维数组中的最大和最小的元素值
int main(){ int a[111],max,min,*p,n,k=0;p=a;\/\/指针p指向数组a首地址 do{ scanf("%d",&n);p[k++]=n;}while(getchar()!='\\n');max=min=p[0];for(p=a;pmax)max=*p;if(*p<min)min=*p;} printf("max=%d,min=%d",max,min);return 0;} ...

C语言,编写程序,使用指针求出一维整型数组,数组自定,求出最大值及其下 ...
include<stdio.h>#define ARRAY_LEN 100int main(void) {int arr[ARRAY_LEN],len,i,*p=arr,*max=arr;printf("请输入初始数组元素个数:");scanf("%d",&len); printf ("\\n"); printf ("===\\n\\n"); printf("请输入数组内容,共%d个元素: ",len);for(i=0; i<len; p...

C语言指针实现自定义函数求一维数组中的最大值和最小值
System.out.println("\\n最大值:"+max);System.out.println("最小值:"+min);} }

利用指针的方法,求数组中的最大数和最小数
int u,v;find_u_v (int *p,int n){ int *q;u=v=*p;for(q=p;q<p+n;q++){if(u<*q) u=*q;else if(v>*q) v=*q;} } int main(int argc, char* argv[]){ int i,num[10];printf("intput 10 numbers\\n");for(i=0;i<10;i++)scanf("%d",&num[i]);find_u...

c语言用指针编写findmax函数找到最大值并输出其下标
int max = 0; for (i = 0; i < n; i++) if (p[i] > p[max]) max = i; printf("%d\\n", p[max]); return max;}int main(void){ int buf[5] = {6, 2, 9, 1, 8}; findmax(buf, 5); return 0;} ...

C语言 利用指针实现求数组元素中的最大值和最小值
for(i=1;i<N;i++) 数组下标是 0开始的。 不是1 。 1就不对了。 你改改看看 for(i=1;i<N;i++){ if(*p<*(p+i))p=(p+i); \/\/这应该是用个临时变量 你这样改变这节的指向 就不对哦 else if(*t>*(t+i))t=(t+i);} ...

...输入一个一维实型数组,输出其中最大值、最小值和平均值。
1 创建数组;2 输入数组各个元素值;3 遍历,求最大,最小,和平均值;4 输出结果。为提高效率,其中2,3两步可在同一个循环中完成。代码如下:int main(){ float a[10]; int i; float *p, *pmax,*pmin, ave = 0; p = pmax= pmin = a; scanf("%f",p); for...

...计算出最大值和最小值,并返回它们所在的数组中的位置
int max=0,min=100;p=&max;\/\/指针P指向max q=&min;\/\/指针q指向min int x;scanf("%d",&x);while(x!=0) \/\/输入0结束输入 { if(*p<x)p=x;if(*q>x)q=x;scanf("%d",&x);} printf("max:%d\\tmin:%d\\n",*p,*q);while(1);return 0;} 如果确定为输入10 个数的话,...

C语言,使用指针作为函数参数,写一求数组中最大值和最小指的函数
inta[]={1,5,6,2,3,8,9,7,4,5};//定义一个十个数据的数组 intmax;//存放最大值 intmin;//存放最小值 hanshu(a,10,&max,&min);//函数传送数组,并将最大值,最小值的地址传送 printf("Themaxnumberis%d\n",max);printf("Theminnumberis%d\...

相似回答