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

问题描述

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

#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 = %dn", k);
    return OK;
}

Status printfMatrix(TSMatrix M) {
    int row, col, temp, k = 0;
//  printf("T.mu=%d T.nu=%dn", 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 = %dn", 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;
}

时间: 2024-11-17 01:40:01

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

请问这一小块jsp代码是否正确?

问题描述 请问这一小块jsp代码是否正确? 非常初级.. <%int y=0;%><%int z=0; for(int x=0;x<3;x++){ z++; ++y;} if(z<%= z%><%}else{%><%=z-1%><%}%> 最后是打出2吗?请问这段代码里++y和z++有什么不同效果吗 谢谢 解决方案 对的,是2http://codepad.org/mwpDE1Fp 解决方案二: 这里用++y y++其实都一样.

java基础-请问此题,用代码应该怎么做?

问题描述 请问此题,用代码应该怎么做? 解决方案 啥也不说,上代码int cbig = 0;//11代表大勺子的剩余量 int clit = 0;//7代表小勺子的剩余量 int count = 0;//代表循环的次数 while(clit!=2){ count++; clit = 7; System.out.println(""把小勺装满倒入大勺""); //cbig = cbig+7; if(cbig+7>=11){ clit = 7-(11 - cbig

图片-请问:怎么用java代码实现word中的超链接?如图中的形式,当点击目录时,出现目录的信息

问题描述 请问:怎么用java代码实现word中的超链接?如图中的形式,当点击目录时,出现目录的信息 解决方案 应该就是点一个东西,然后把翻到第多少页. 解决方案二: 找插件实现

请问:各位所在的公司有没有不设专门的测试岗位的、开发人员自已编写代码自已测试?开发人员感觉差不多了,就可以发布了?

问题描述 请问:各位所在的公司有没有不设专门的测试岗位的.开发人员自已编写代码自已测试?开发人员感觉差不多了,就可以发布了? 解决方案 解决方案二:当然有.没测试过的东西,谁有那个胆子发布?会出事的.公司有专门的测试岗位.程序员自己也要测试.解决方案三:很小的公司(<20人)的...一般没有专门测试岗位..解决方案四:自已顶起来解决方案五:有的几十个人的外企,一样没有专业测试团队.基本上就是给系统工程师黑盒跑跑看就可以发布了.毕竟这个公司的产品不是给平民大众用的.

请问怎么在REST接口 根据群组id去查下一个 群组的聊天记录?现在只看到了timestamp查询方法

问题描述 请问怎么在REST接口 根据群组id去查下一个 群组的聊天记录?现在只看到了timestamp查询方法 解决方案 没有通过过id导出的.调用rest接口是导出app所有的记录,报存到你自己服务器过滤

wpf请问这段事件触发器代码为什么会异常?

问题描述 wpf请问这段事件触发器代码为什么会异常? <Button Grid.Row="1" Grid.Column="1" Margin="45,30,45,40" Content="确定" Name="button1"> <Button.Triggers> <EventTrigger RoutedEvent="Mouse.MouseEnter">

c语言-OJ的输入输出 C语言的输入输出多组测试数据

问题描述 OJ的输入输出 C语言的输入输出多组测试数据 请问OJ测试代码时是如何输入输出的?C语言如何实现多组数据的输出?比如这道题 "水仙花数"是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3. 现在要求输出所有在m和n范围内的水仙花数. Input 输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999). Output 对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等

acm-关于输入多组测试数据,C#

问题描述 关于输入多组测试数据,C# 最近在学习C#,所以问题来了. 在很多ACM问题中,都会有一句输入多组测试数据,以文件结尾. 用C或者C++都是可以以关键字EOF实现. 我想问,如果用C#去实现这一个功能,代码怎样才能更简单.快捷? 解决方案 StreamReader类: Read方法,到达尾端没有字符可以读到时,返回0. Peek方法,如果没有字符可以读取,返回-1. ReadLine方法,到达尾端时,返回null. ReadBlock方法,到达尾端,没有字符可以再读时,返回0. Rea

这段java for循环代码的结果怎么不对呢?DOS 输出结果为800.0,编译也没有啥问题啊。

问题描述 这段java for循环代码的结果怎么不对呢?DOS 输出结果为800.0,编译也没有啥问题啊. 如题,代码如下: public class Example41_3 { public static void main(String args[]){ float i=0; double sum=0; for(i=1;i<=3;i++); { sum+=8*(Math.pow(10.0,(i-1))); } System.out.println("计算8+88+888+8888+--