解题思路:
注意事项:
参考代码:
#include <stdio.h>
typedef struct {
int r;
int c;
int d; //数据存储
}tup;
typedef struct {
int rows;
int cols;
int number; //非零元素的个数
tup data[100000];
}num;
void change(num x,num *y){
int n=0;
y->rows=x.cols;
y->cols=x.rows;
y->number=x.number;
for (int i=0;i<x.cols;i++){ //按列来查找
for (int j=0;j<x.number;j++){ //在所有非零元素中查找
if (x.data[j].c==i){ //如果列坐标相同,则将x中的元素转置到y中
y->data[n].r=x.data[j].c;
y->data[n].c=x.data[j].r;
y->data[n].d=x.data[j].d;
n++;
}
}
}
}
int main (){
int m,n,t;
num x,y;
scanf ("%d %d",&n,&m);
x.number=0;
x.rows=n;
x.cols=m;
for (int i=0;i<n;i++){
for (int j=0;j<m;j++){
scanf ("%d",&t);
if (t!=0){
x.data[x.number].d=t;
x.data[x.number].r=i;
x.data[x.number].c=j;
x.number++;
}
}
}
change(x,&y);
t=0;
for (int i=0;i<y.rows;i++){
for (int j=0;j<y.cols;j++){
if (y.data[t].r==i&&y.data[t].c==j) //y中元素下标对应则输出
printf ("%d ",y.data[t++].d);
else
printf ("0 ");
}
printf ("\n");
}
}
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:1267 |
C二级辅导-阶乘数列 (C语言代码)浏览:736 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:541 |
WU-输出正反三角形 (C++代码)浏览:1098 |
C语言程序设计教程(第三版)课后习题6.6 (C++代码)浏览:649 |
用筛法求之N内的素数。 (C语言代码)浏览:685 |
星期判断机 (C语言代码)浏览:892 |
蛇行矩阵 (C语言代码)浏览:559 |
【计算直线的交点数】 (C语言代码)浏览:984 |
1162答案错误,为什么浏览:700 |