noah&plus 2015-11-08 02:48 采纳率: 0%
浏览 554

请问这个稀疏矩阵转置的代码哪组测试数据不对??我没有测试出来。

图片说明

#include<stdio.h>
#define MAX_SIZE 100
#define OK 1
#define ERROR -1
typedef int ElemType;
typedef int Status;
typedef struct {
    int i, j;
    ElemType e;
}Triple;
typedef struct {
    Triple data[MAX_SIZE];
    int mu, nu, tu;
}TSMatrix;

Status creatSMatrix(TSMatrix &M) {
    int row, col,  k = 0;
    scanf("%d %d", &M.mu, &M.nu);
    for(row = 1; row <= M.mu; row++) {
        for(col = 1; col <= M.nu; col++) {
            scanf("%d", &M.data[k].e);
            if(M.data[k].e) {
                M.data[k].i = row;
                M.data[k].j = col;
                k++;
            }
        }
    }
    M.tu = k;
//  printf("k = %d\n", k);
    return OK;
}

Status printfMatrix(TSMatrix M) {
    int row, col, temp, k = 0;
//  printf("T.mu=%d T.nu=%d\n", M.mu, M.nu);
    for(row = 1; row <= M.mu; row++) {
        for(col = 1; col <= M.nu; col++) {
            if(row == M.data[k].i && col == M.data[k].j) {
                printf("%d ", M.data[k].e);
                k++;
            }
            else
                printf("0 ");
        }
        printf("\n");
    }
}

Status transportSMatrix(TSMatrix M, TSMatrix &T) {
    int col, p, k = 0;
    T.mu = M.nu;
    T.nu = M.mu;
    T.tu = M.tu;
    for(col = 1; col <= M.nu; col ++){
        for(p = 0; p < M.tu; p ++){
            if(col == M.data[p].j) {
                T.data[k].i = M.data[p].j;
                T.data[k].j = M.data[p].i;
                T.data[k].e = M.data[p].e;
                k ++;
            }
        }
    }
//  printf("M.data[1].j=%d k = %d\n", M.data[1].j, k);
}

Status destoryMatrix(TSMatrix &M){
    M.mu = M.nu = M.tu = 0;
}

int main() {
    TSMatrix M, T;
    creatSMatrix(M);
    transportSMatrix(M, T);
    printfMatrix(T);
    destoryMatrix(M);
    return 0;
}


  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥100 求三轴之间相互配合画圆以及直线的算法
    • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
    • ¥15 名为“Product”的列已属于此 DataTable
    • ¥15 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
    • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
    • ¥15 自己瞎改改,结果现在又运行不了了
    • ¥15 链式存储应该如何解决
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站