二维矩阵的元素求和与缩放

记得开心一点嘛 【实验室成员】 2024-11-18 11:50:15

 

编写一个C++程序,完成以下功能:

  1. 创建一个 3x3 的int arr[3][3]的二维数组,并用用户输入的整数值初始化矩阵。
  2. 编写一个函数 calculateSum,该函数接收一个二维数组的引用和数组的维数作为参数,计算并返回数组中所有元素的和。
  3. 编写一个函数 scaleMatrix,该函数接收一个二维数组的引用、数组的维数和一个缩放因子作为参数,将矩阵中的每个元素乘以缩放因子。
  4. main 函数中,调用 calculateSum 计算初始矩阵的和,输出结果。然后调用 scaleMatrix 对矩阵进行缩放,再次计算和并输出结果。

要求:

  • 使用引用传递参数。
  • 使用嵌套的 for 循环来遍历和操作二维数组。
输入:
1 2 3
4 5 6
7 8 9
缩放因子:2

输出:
初始矩阵的和:45
缩放后的矩阵为:
2 4 6
8 10 12
14 16 18
缩放后矩阵的和:90


 

...全文
326 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
记得开心一点嘛 【实验室成员】 2024-11-18
精选
  • 打赏
  • 举报
回复 1

#include <iostream>
using namespace std;

// 函数声明
int calculateSum(int (&matrix)[3][3]);
void scaleMatrix(int (&matrix)[3][3], int factor);

int main() {
    // 3x3二维数组
    int matrix[3][3];
    cout << "请输入3x3矩阵的元素(共9个整数):" << endl;

    // 用户输入矩阵元素

    // 计算并输出初始矩阵的和
    int sum = calculateSum(matrix);
    cout << "初始矩阵的和: " << sum << endl;

    // 输入缩放因子
    int factor;
    cout << "请输入缩放因子: ";
    cin >> factor;

    // 缩放矩阵
    scaleMatrix(matrix, factor);

    // 输出缩放后的矩阵
    cout << "缩放后的矩阵为:" << endl;
    //打印缩放后的矩阵

    // 计算并输出缩放后矩阵的和
    sum = calculateSum(matrix);
    cout << "缩放后矩阵的和: " << sum << endl;

    return 0;
}

// 计算矩阵元素的和
int calculateSum(int (&matrix)[3][3]) {}

// 缩放矩阵中的元素
void scaleMatrix(int (&matrix)[3][3], int factor){}

杨子龙1 2024-11-19
  • 打赏
  • 举报
回复 1
using namespace std;
// 函数声明
int calculateSum(const int (&arr)[3][3], int rows, int cols);
void scaleMatrix(int (&arr)[3][3], int rows, int cols, int scaleFactor);
void printMatrix(const int (&arr)[3][3], int rows, int cols);

int main() {
    int arr[3][3];
    int rows = 3, cols = 3;

    // 初始化矩阵
    cout << "请输入3x3矩阵的元素:" << endl;
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            std::cin >> arr[i][j];
        }
    }

    // 计算初始矩阵的和
    int sumInitial = calculateSum(arr, rows, cols);
    cout << "初始矩阵的元素和为: " << sumInitial << endl;

    // 缩放矩阵
    int scaleFactor;
    cout << "请输入缩放因子:" << endl;
    cin >> scaleFactor;

    scaleMatrix(arr, rows, cols, scaleFactor);

    // 打印缩放后的矩阵
    cout << "缩放后的矩阵为:" << endl;
    printMatrix(arr, rows, cols);

    // 计算缩放后的矩阵的和
    int sumScaled = calculateSum(arr, rows, cols);
    cout << "缩放后的矩阵的元素和为: " << sumScaled << endl;

    return 0;
}

// 计算矩阵元素总和的函数
int calculateSum(const int (&arr)[3][3], int rows, int cols) {
    int sum = 0;
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            sum += arr[i][j];
        }
    }
    return sum;
}

// 缩放矩阵的函数
void scaleMatrix(int (&arr)[3][3], int rows, int cols, int scaleFactor) {
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            arr[i][j] *= scaleFactor;
        }
    }
}

// 打印矩阵的函数
void printMatrix(const int (&arr)[3][3], int rows, int cols) {
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }
}


UndefinedMan 2024-11-18
  • 打赏
  • 举报
回复

package main

import "fmt"

func scaleMatrix(mySlice [][]int, factor int) {
    for i, _ := range mySlice {
        for j, _ := range mySlice[i] {
            _, _ = fmt.Scan(&mySlice[i][j])
        }
    }

    for i, _ := range mySlice {
        for j, _ := range mySlice[i] {
            mySlice[i][j] *= factor
        }
    }
}

func main() {
    var mySlice = make([][]int, 3)
    for i := range mySlice {
        mySlice[i] = make([]int, 3)
    }
    var factor int
    fmt.Println("输入放缩倍数:")
    _, _ = fmt.Scanf("%d", &factor)
    scaleMatrix(mySlice, factor)
    fmt.Println("放缩后:")
    for i, _ := range mySlice {
        for j, _ := range mySlice[i] {
            fmt.Printf("%d ", mySlice[i][j])
        }
        fmt.Println()
    }

}

img

42

社区成员

发帖
与我相关
我的任务
社区描述
分享高质量资源,努力成为优秀IT人才。
软件工程大数据物联网 高校 辽宁省·沈阳市
社区管理员
  • 记得开心一点嘛
  • USTIL_172
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎加入沈阳工业大学USTIL社区,期待着你从一名新手成长为真正的IT大佬。

试试用AI创作助手写篇文章吧