c语言交换最大最小值函数 c语言最大数与最小数交换

在c语言中如何将数组的最大值与最小值互换位置,求大神解答?。。?/h2>找到最大和最小值的下标 , 交换,例如:
#include stdio.h
main()
{
int a[10]={10,2,3,4,5,6,7,8,9,10},n=10;
int i1,i2,i;
i1=0;
for (i=0;in;i++)if (a[i]a[i1]) i1=i;
i2=0;
for (i=0;in;i++)if (a[i]a[i2]) i2=i;
i=a[i1]; a[i1]=a[i2];a[i2]=i;
for (i=0;in;i++) printf("%d ",a[i]);
return 0;
}
扩展资料:
在C语言中,数组属于构造数据类型 。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型 。因此按数组元素的类型不同 , 数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别 。
关于可变长数组(VLA)的问题:原来的C89标准中是不允许可变长数组出现的,但是在C99标准中 , 加入了对VLA的支持,但是支持的编译器不多,而且由于栈溢出的安全问题 , 没有太多的人敢用这个可变长数组,所以在C11标准中又把它规定为可选实现的功能了 。
参考资料来源:百度百科-数组
C语言编写用函数找出数组的最大值与最小值,然后交换位置(要求函数形参用指针)fun(int *p, int n)
{inti,ka,ki,max,min;
for(max=min=p[0],ka=ki=0,i=1;in;i++0)
{if(maxp[i]) {max=p[i];ka=i;}
if(min[i]) {min=p[i];ki=i;}
}
p[ka]=min;p[ki]=max;
}
编写一个函数,将数组中的最大值与最小值交换位置,用指针include<stdio.h>
voidswap(int*a,int*b)

inttemp=*a;
*a=*b;
*b=temp;

intrandArray(intarray[10]){
inti;
srand(time(NULL));
for(i=0;i<10;i++)
array[i]=rand()%100+0;
returnarray[10];

intmain()

inta[10];
a[10]=randArray(a);
printf("随机数组:\n");
inti,*p , *pmin=a,*pmax=a;
for(p=a;p<a+10;p++)
printf("%d",*p);
for(p=a;p<a+10;p++)

if(*p>*pmax)
pmax=p;
if(*p<*pmin)
pmin=p;

swap(pmax,a);
swap(pmin,&a[9]);
printf("\n排序后数组:\n");
for(p=a;p<a+10;p++)
printf("%d",*p);

运行结果:
扩展资料:
main函数用法
1、C++中的main函数
C++继承了C语言的大部分特性,因此保留了“程序总是从main函数开始执行 , 且总是默认从main函数的return语句或结尾处结束运行”这一传统,但是要注意,C++中的main函数要想作为程序执行的出入口 , 必须写在全局(Global)范围,
不能写成某个结构体或某个类的成员 。虽然main函数可以作为结构体或者类的成员函数 , 但相应地会失去作为程序出入口的功能 。
C++中全局main函数的书写格式与C语言完全相同,功能也完全相同,且同一C++程序同样只能有一个全局main函数 。
2、Java中的main函数
Java同样是以main函数作为程序执行出入口的,但Java作为“更纯洁”的面向对象语言,它的main函数与C/C++有很大的不同 。
首先 , 返回值的概念淡化,在Java Application中main不允许返回值,因此int main是被禁止的 , 必须使用void main , int main仅限在JavaBean中使用 。
其次,Java中所有的函数必须属于类,没有什么全局函数一说 , 因此main函数不能是全局成员,必须是某个类的成员 。
第三,由于main函数变成了类的成员函数,因此要想直接被系统调用,还必须使用public static使其成为静态函数并具有公开权限 。

推荐阅读