对稀疏矩阵进行转置操作,按照老师讲的,有两种办法。我用的是第一种最简单的,从上到下一行一行得走,虽然速度很慢,但是简单。
说实话这个题目很讨厌,我们定义的三元组里面mu表示的是行数,但是题目要求输入的m表示的是列数,这就很容易搞混了。
但是我们不用n和m表示行和列,而是用线性代数里面的r表示行,c表示列,这样做不容易错,反正它先输入的永远是行,后输入的永远是列。
其中进行转置操作的函数function,感觉很像咱们上学期用过的“冒泡排序”。
为什么答案都对但是仍然WA的原因:
首先,大概率就是输出输入的问题,也就是说,问题十有八九都出在了printf和scanf这两个函数上
下面我分情况讨论一下允许的输入格式:
1.输入两个正整数:
scanf("%d%d",&m,&n); 正确
scanf("%d %d",&m,&n); 正确
2.输入矩阵三元组:(我就栽在这个地方了mmp)
scanf("%d%d%d",&i,&j,&x);
if(i==0&&j==0&&x==0) break; 错误!
scanf("%d %d %d",&i,&j,&x);
if(i==0&&j==0&&x==0) break; 错误!</