当前位置: 首页 > article >正文

C语言-稀疏数组转置

1.题目要求

 

2.代码实现 

#include <stdio.h>
#define MAX_TERM 80

// 定义稀疏矩阵结构体
typedef struct juzhen {
    int row;
    int col;
    int value;
} Juzhen;

// 显示稀疏矩阵
void show(Juzhen a[], int count_a) {
    printf(" i row col val\n");
    for (int i = 1; i <= count_a; i++) {
        printf(" %d|  %d   %d   %d\n", i, a[i].row, a[i].col, a[i].value);
    }
}

// 转置稀疏矩阵
void zhuanzhi(Juzhen a[], Juzhen b[]) {
    int i, j, k;
    b[0].row = a[0].col;
    b[0].col = a[0].row;
    b[0].value = a[0].value;
    if (a[0].value > 0) {
        k = 1;
        for (i = 0; i < a[0].col; i++) {
            for (j = 1; j <= a[0].value; j++) {
                if (a[j].col == i) {
                    b[k].row = a[j].col;
                    b[k].col = a[j].row;
                    b[k].value = a[j].value;
                    k++;
                }
            }
        }
    }
}

// 初始化稀疏矩阵
void init(Juzhen a[], int *rows, int *cols, int *count) {
    printf("please input the number of rows,cols and values\n");
    scanf("%d,%d,%d", rows, cols, count);
    a[0].row = *rows;
    a[0].col = *cols;
    a[0].value = *count;
    for (int i = 1; i <= *count; i++) {
    	printf("please input the row,col and value\n");
        scanf("%d,%d,%d", &a[i].row, &a[i].col, &a[i].value);
    }
}

int main() {
    Juzhen a[MAX_TERM];
    Juzhen b[MAX_TERM];
    int rows, cols, count;
    init(a, &rows, &cols, &count);
    show(a, count);
    printf("\n");
    zhuanzhi(a, b);
    show(b, count);
    return 0;
}


http://www.kler.cn/a/443465.html

相关文章:

  • ARM发布Armv9.5架构:迈向更强性能与灵活性的新时代
  • 毕业项目推荐:基于yolov8/yolov5的行人检测识别系统(python+卷积神经网络)
  • mongodb==安装prisma连接
  • vue3组件化开发优势劣势分析,及一个案例
  • Oracle 11g rac + Dataguard 环境调整 redo log 大小
  • RabbitMQ通过代码创建交换机和队列
  • leetcode105.从前序与中序遍历序列构造二叉树
  • UE4_用户控件_1_滑块控制图像颜色的变化
  • FFmpeg 主要结构体剖析
  • YOLOv9-0.1部分代码阅读笔记-callbacks.py
  • 新质生产力8大产业链
  • 使用k6进行Redis基准测试
  • VMware ubuntu虚拟机网络配置
  • leecode1049.最后一块石头的重量||
  • 如何在 Spring Boot 应用程序中使用 WireMock 模拟外部 rest api 调用进行测试
  • 沙县小吃点餐系统|Java|SSM|JSP|
  • 深度学习实战之超分辨率算法(tensorflow)——ESPCN
  • 【C#】WebSoket 演示(使用websocket-sharp库)
  • 【FFmpeg 教程 一】截图
  • aws(学习笔记第十八课) 使用aws cdk(python)进行部署
  • WebPlotDigitizer 使用指南
  • 【Linux网络编程】第十二弹---构建与优化HTTP请求处理:从HttpRequest到HttpServer的实战
  • 信息安全概论
  • Web应用中的XSS防护实践
  • 位运算符说明
  • LWIP协议:三次握手和四次挥手、TCP/IP模型