42
社区成员
发帖
与我相关
我的任务
分享
编写一个C++程序,完成以下功能:
3x3 的int arr[3][3]的二维数组,并用用户输入的整数值初始化矩阵。calculateSum,该函数接收一个二维数组的引用和数组的维数作为参数,计算并返回数组中所有元素的和。scaleMatrix,该函数接收一个二维数组的引用、数组的维数和一个缩放因子作为参数,将矩阵中的每个元素乘以缩放因子。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
#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){}
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;
}
}
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()
}
}
