c++,1、在一个10个整数的数组中找出最小数和其下标,并在主函数中打印最小数和下标。 2、输入一个n*n的矩阵,求出两条对角线元素值之和。
时间: 2024-10-19 15:06:25 浏览: 46
指向多维数组的指针和指针变量-C++程序设计 谭浩强完整版
1. 在C++中,你可以使用循环遍历数组并同时记录最小值和其下标。这里是一个简单的示例:
```cpp
#include <iostream>
using namespace std;
void findMin(int arr[], int size, int& minVal, int& minIndex) {
minVal = arr[0];
minIndex = 0;
for (int i = 1; i < size; i++) {
if (arr[i] < minVal) {
minVal = arr[i];
minIndex = i;
}
}
}
int main() {
int arr[10]; // 假设你已经填充了这个数组
int minVal, minIndex;
// 初始化数组内容...
for (int i = 0; i < 10; i++) {
cin >> arr[i];
}
findMin(arr, 10, minVal, minIndex);
cout << "最小数: " << minVal << ", 下标: " << minIndex << endl;
return 0;
}
```
在这个程序中,`findMin` 函数会找到数组中的最小值及其索引,然后在`main`函数里打印结果。
2. 对于输入的n*n矩阵,我们可以分别计算行对角线和列对角线的和。假设矩阵为`matrix`,可以这样做:
```cpp
#include <iostream>
int sumDiagonals(int matrix[n][n]) {
int rowSum = 0, colSum = 0; // 行对角线和列对角线初始值都为0
for (int i = 0; i < n; i++) {
rowSum += matrix[i][i]; // 计算行对角线
colSum += matrix[i][n - i - 1]; // 计算列对角线
}
return rowSum + colSum;
}
int main() {
int n, matrix[n][n]; // 矩阵大小需要用户输入
cout << "请输入矩阵的尺寸: ";
cin >> n;
// 输入矩阵元素...
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
cin >> matrix[i][j];
int totalSum = sumDiagonals(matrix);
cout << "行对角线和列对角线的和: " << totalSum << endl;
return 0;
}
```
这里我们首先声明两个变量来存储两对角线的和,然后逐行累加对应的元素。注意矩阵的列下标从0开始,所以对于列对角线,我们需要使用`n - i - 1`作为列索引。
阅读全文