c语言交换最大最小值,希望帮忙看看我的代码?

c语言交换最大最小值,希望帮忙看看我的代码?,第1张

题目只要求 把最小值交换到最前面,把最大值交换到最后面。而不是按大小对所有的数排队。

所以,你可以先找出最小值的数值和位子,交换最小值到a[0],把a[0]换到那个位子上。

然后,找出最大值的数值和位子,交换最大值到a[n-1],把a[n-1]换到那个位子上。

程序如下:

#include <stdio.h>

void myswap(int a[],int n)

int main()

{

int i,N

int a[10],t,k

printf("input: 5\n8 2 5 1 4\n")

scanf("%d",&N)

for (i=0i<Ni++)scanf("%d",&a[i])

myswap(a,N)

for (i=0i<Ni++)printf("%d ",a[i])

return 0

}

void myswap(int a[],int n)

{

int min,max,i,j,k

min=a[0]j=0

for (i=0i<ni++) if (a[i]<min){min=a[i]j=i}

min=a[0]a[0]=a[j]a[j]=min

max=a[n-1]k=n-1

for (i=1i<n-1i++) if(a[i]>max){max=a[i]k=i}

a[k]=a[n-1]a[n-1]=max

}

#include <stdio.h> 

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=0i<3i++)

     for (j=0j<4j++)

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

max=arr[0][0]

min=arr[0][0]

    for (i=0i<3i++) {

     for (j=0j<4j++)

     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=0i<3i++) {

     for (j=0j<4j++)

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

    printf ("\n")

    }

    return 0

}

运行结果


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8063483.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存