当前位置:首页题目 > 正文

C++题目:稀疏矩阵

作者:野牛程序员:2023-08-15 08:46:16题目阅读 2836

【题目描述】 大部分元素是0的矩阵称为稀疏矩阵,假设有k个非0元素,则可以把矩阵用k * 3的矩阵简记之,其中第一列是行号,第二列是列号,第三列是该元素的值。如: 0 0 0 5 简记成:1 4 5 0 2 0 0              2 2 2 0 1 0 0              3 2 1 试编程读入一个3行5列的稀疏矩阵,转换成简记形式。 【输入描述】 输入包括3行,每行5个正整数,以空格隔开,代表一个3行5列的稀疏矩阵。 【输出描述】 输出k行,k为输入的矩阵中非0元素的个数。每行分别代表一个非0元素,按照从左到右,从上到下的顺序。每行包括三个整数,以空格隔开,分别代表该非0元素的行号,列号,以及元素的值。 【样例输入】 0 0 0 0 5 0 0 4 0 0 1 0 0 0 1 【样例输出】 1 5 5 2 3 4 3 1 1 3 5 1


#include <iostream>
using namespace std;

int main() {
    int matrix[3][5];
    int nonZeroCount = 0;

    // 读取稀疏矩阵
    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j < 5; ++j) {
            cin >> matrix[i][j];
            if (matrix[i][j] != 0) {
                nonZeroCount++;
            }
        }
    }

    // 输出非0元素的简记形式
    //cout << nonZeroCount << endl;
    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j < 5; ++j) {
            if (matrix[i][j] != 0) {
                cout << i + 1 << " " << j + 1 << " " << matrix[i][j] << endl;
            }
        }
    }

    return 0;
}

这段代码会读取输入的稀疏矩阵,统计非0元素的个数,然后输出非0元素的简记形式,按照题目要求的顺序输出。

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击