请各位高手帮我解决两个C语言的题目 才开始学习 不懂的太多 谢谢给位

来源:百度知道 编辑:UC知道 时间:2024/05/14 05:38:54
(1)编写程序,功能是实现矩阵(3行3列)的转置(即行列互换)
100 200 300 100 400 700
例如:原矩阵为:400 500 600 ,则转置后为 200 500 800 .
700 800 900 300 600 900
请各位高手帮我编写一个程序 非常谢谢。

(2)编写程序,功能是:将3行4列的二维数组中的数据,按列的顺序依次放到一维数组中。
例如:二维数组中的数据为:
33 33 33 33
44 44 44 44
55 55 55 55
则一维数组中的数据为:
33 44 55 33 44 55 33 44 55 33 44 55.
非常感谢

1、
/*编写程序实现用三元组表示的稀疏数组的输入、转置、输出。
>可以直接输入三元组,转置基于三元组进行,输出的结果也为三元组。
>*/
#include<stdio.h>
main(){
int m[3][3];
int i,j,t;
for (i=0;i<3;i++){
printf("请输入三元组第%d行,中间用","分隔",i+1);
scanf("%d,%d,%d",&m[i][0],&m[i][1],&m[i][2]);}
for (i=0;i<3;i++)
for (j=0;j<3;j++)
if(i>j){
t=m[i][j];
m[i][j]=m[j][i];
m[j][i]=t;
}

for (i=0;i<3;i++){
for (j=0;j<3;j++)
printf("%d ",m[i][j]);
printf(" ");
}
getch();
}
2、
#include<stdio.h>
main()
{
int i,j,k;
int a[3][4]={33 33 33 33 ,
44 44 44 44,
55 55 55 55};
k=0;
for(i=0;i<3;i++){
for(j=0;j<4;j++){
b[k++]=a[j][i];
}
}

for(i=0;i<12;i++){
printf("%d ",b[i]);
}
}<