c语言最值交换数组函数法 c语言数组交换最大最小值

C语言最大值最小值交换

#include stdio.h 

闻喜ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

int main(void) {

int arr[3][4];

int max,min; /*记录最大值与最小值*/

int mini=0,minj=0,maxi=0,maxj=0; /*记录最大值与最小值的坐标*/

int i,j,temp;

printf ("请输入矩阵内容(3行4列):\n");

for (i=0;i3;i++)

for (j=0;j4;j++)

scanf ("%d",arr[i][j]);

max=arr[0][0];

min=arr[0][0];

for (i=0;i3;i++) {

for (j=0;j4;j++)

if(arr[i][j]max) {

maxi = i;

maxj = j;

}

if(arr[i][j]min) {

mini = i;

minj = j;

}

}

printf ("原矩阵最小值为arr[%d][%d]=%d;最大值为arr[%d][%d]=%d。\n",mini,minj,arr[mini][minj],maxi,maxj,arr[maxi][maxj]);

temp = arr[mini][minj]; /*交换最小值与最大值*/

arr[mini][minj] = arr[maxi][maxj];

arr[maxi][maxj] = temp;

printf ("最小值与最大值交换后矩阵:\n");

for (i=0;i3;i++) {

for (j=0;j4;j++)

printf ("%d\t",arr[i][j]);

printf ("\n");

}

return 0;

}

运行结果

在c语言中如何将数组的最大值与最小值互换位置,求大神解答!!!

找到最大和最小值的下标,交换,例如:

#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语言数组最大值与最小值交换

两个for循环里面的数组赋值把数组的数据搞得乱起八糟的,for里面为啥要赋值?第二,max和min最后永远等于n-1,if不用大括号根本作用不到max=i、min=i。如果只是简单的最大和最小值交互,非常的简单,循环一遍,直接记住最大和最小值所在下标,最后再做交换。两遍循环浪费时间。


分享文章:c语言最值交换数组函数法 c语言数组交换最大最小值
网址分享:http://pwwzsj.com/article/doehjjs.html