c语言代码求解? 5
本关任务:有一个3*4矩阵,找出每行中最大的元素并与第1列元素交换。具体要求如下:
1.使用二维数组存放该3*4矩阵
2.为二维数组输入数据。
3.输出原矩阵并和处理后的矩阵进行比较。
输入:
第一行为两个整数,表示3x4的矩阵。
第二行开始为矩阵赋值。
输出:
第一行输出提示”原矩阵:”。
第二行开始输出原矩阵数据。
接下来一行输出提示”处理后:”。
接下来一行开始输出处理后的矩阵数据。
相关知识
相关知识略
编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写数组元素交换的小程序。
测试说明
平台会对你编写的代码进行测试:
测试输入:
3 4
1 2 3 4
5 6 7 8
9 10 11 12
预期输出:
原矩阵:
1 2 3 4
5 6 7 8
9 10 11 12
处理后:
4 2 3 1
8 6 7 5
12 10 11 9 展开
没有看到要修改的代码,只好写一个作参考……
代码文本:
#include "stdio.h"
int main(int argc,char *argv[]){
int a[10][10],i,j,k,n,m;
printf("Enter n & m(int 0<n,m<10)...\n");
if(scanf("%d%d",&m,&n)!=2 || m<1 || n<1 || n>10 || m>10){
printf("Input error, exit...\n");
return 0;
}
printf("Enter the %d integers, %d digital a line, separated by ' '\n",n*m,n);
for(i=0;i<m;i++)
for(j=0;j<n;scanf("%d",a[i]+j++));
printf("原矩阵:\n");
for(i=0;i<m;i++){
for(j=0;j<n;printf("%5d",a[i][j++]));
putchar('\n');
}
for(i=0;i<m;i++){
for(k=j=0;j<n;j++)
if(a[i][k]<a[i][j])
k=j;
j=a[i][k],a[i][k]=a[i][0],a[i][0]=j;
}
printf("处理后:\n");
for(i=0;i<m;i++){
for(j=0;j<n;printf("%5d",a[i][j++]));
putchar('\n');
}
return 0;
}