C语言。定义一4*4二维数组,找出其中最小元素所在行,若不在第一行,则和第一行交换.

如题所述

#include "stdio.h"

void main()

{

     int a[4][4]={0};

     int i,j,min,min_index,tmp;

     printf("Please input a matrix(4X4):\n");

     for(i=0;i<4;i++)

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

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

     min=a[0][0];

     min_index=0;

     printf("The matrix you have just inputed is:\n");

     for(i=0;i<4;i++)

     {

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

            printf("%d ",a[i][j]);

          printf("\n");

     }

     for(i=0;i<4;i++)

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

       if(a[i][j]<min)

       {

        min=a[i][j];

        min_index=i;

       }

       if(min_index!=0)

       {

            printf("The min value of this matrix is not in row 1.\nThe new matrix is:\n");

            for(i=0;i<4;i++)

            {

                 tmp=a[0][i];

                 a[0][i]=a[min_index][i];

                 a[min_index][i]=tmp;

            }

       

            for(i=0;i<4;i++)

            {

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

                 printf("%d ",a[i][j]);

               printf("\n");

            }

       

   

       }

       else

       {

           printf("The min value of this matrix is in row 1.\n");

       }

   

}

结果:

 

 

追问

http://zhidao.baidu.com/question/539539190?quesup2&oldq=1
能帮我看看这题吗

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-09
#include<stdio.h>
#include<limits.h>
int main()
{
int p[4][4];
int h,m=INT_MAX;
for(int i=0;i<4;++i)
{
printf("请输入第%d行四个元素的值:",i+1);
for(int j=0;j<4;++j)
{
scanf("%d",p[i]+j);
if(p[i][j]<m)
{
m=p[i][j];
h=i;
}
}
}
printf("最小元素所在的行为第%d行",h+1);
if(h>0)
{
for(int j=0;j<4;++j)
{
int tmp=p[0][j];
p[0][j]=p[h][j];
p[h][j]=tmp;
}
printf("与第一行交行后为:\n");
}
else
{
printf("数组为:\n");
}
for(i=0;i<4;++i)
{
for(int j=0;j<4;++j)
{
printf("%d ",p[i][j]);
}
printf("\n");
}
}

追问

谢谢!请问你是用什么软件做的啊

追答

Microsoft Visual C++ 6.0

追问

http://zhidao.baidu.com/question/539539190?quesup2&oldq=1
能不能顺便帮我看看这道题?谢谢了

本回答被提问者采纳
相似回答