求nxn 数组左下三角形元素之和,右下三角形元素之和C语言
时间: 2024-06-13 20:07:39 浏览: 110
以下是求nxn数组左下三角形元素之和和右下三角形元素之和的C语言代码:
```c
#include <stdio.h>
int main() {
int n, sum1 = 0, sum2 = 0;
scanf("%d", &n);
int a[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
if (i >= j) {
sum1 += a[i][j]; // 左下三角形元素之和
}
if (i + j >= n) {
sum2 += a[i][j]; // 右下三角形元素之和
}
}
}
printf("左下三角形元素之和:%d\n", sum1);
printf("右下三角形元素之和:%d\n", sum2);
return 0;
}
```
相关问题
产生一个nxn的整型二维数组并完成如下功能。 (1)找出最大值和最小值 (2)统计平均值 (3)分别求出主、副对角线的元素的平均值 (4)求出数组外圈元素之和 (5)把主对角线以下的元素设置为0
```python
import random
# 生成一个nxn的二维数组
n = 5
arr = [[random.randint(1, 100) for j in range(n)] for i in range(n)]
# 找出最大值和最小值
max_val = max(max(row) for row in arr)
min_val = min(min(row) for row in arr)
print("最大值:", max_val)
print("最小值:", min_val)
# 统计平均值
sum_val = sum(sum(row) for row in arr)
average = sum_val / (n * n)
print("平均值:", average)
# 分别求出主、副对角线的元素的平均值
sum_main = sum(arr[i][i] for i in range(n))
sum_vic = sum(arr[i][n-i-1] for i in range(n))
average_main = sum_main / n
average_vic = sum_vic / n
print("主对角线平均值:", average_main)
print("副对角线平均值:", average_vic)
# 求出数组外圈元素之和
outer_sum = sum(arr[0]) + sum(arr[-1]) + sum(arr[i][0] + arr[i][-1] for i in range(1, n-1))
print("外圈元素之和:", outer_sum)
# 把主对角线以下的元素设置为0
for i in range(n):
for j in range(n):
if j < i:
arr[i][j] = 0
print("主对角线以下的元素设置为0后:")
for row in arr:
print(row)
```
java产生一个nxn的整型二维数组并完成如下功能。(1)找出最大值和最小值(2)统计平均值(3)分别求出主、副对角线的元素的平均值(4)求出数组外圈元素之和 (5)把主对角线以下的元素设置为0
```
import java.util.Random;
public class ArrayOperations {
public static void main(String[] args) {
int n = 5; // 二维数组大小
int[][] array = new int[n][n];
Random random = new Random();
// 初始化二维数组
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
array[i][j] = random.nextInt(100); // 随机生成0-99的整数
}
}
// 输出二维数组
System.out.println("二维数组:");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(array[i][j] + " ");
}
System.out.println();
}
// 找出最大值和最小值
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (array[i][j] > max) {
max = array[i][j];
}
if (array[i][j] < min) {
min = array[i][j];
}
}
}
System.out.println("最大值:" + max);
System.out.println("最小值:" + min);
// 统计平均值
double sum = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
sum += array[i][j];
}
}
double average = sum / (n * n);
System.out.println("平均值:" + average);
// 分别求出主、副对角线的元素的平均值
double mainDiagonalSum = 0;
double viceDiagonalSum = 0;
for (int i = 0; i < n; i++) {
mainDiagonalSum += array[i][i]; // 主对角线
viceDiagonalSum += array[i][n - i - 1]; // 副对角线
}
double mainDiagonalAverage = mainDiagonalSum / n;
double viceDiagonalAverage = viceDiagonalSum / n;
System.out.println("主对角线平均值:" + mainDiagonalAverage);
System.out.println("副对角线平均值:" + viceDiagonalAverage);
// 求出数组外圈元素之和
int outsideSum = 0;
for (int i = 0; i < n; i++) {
outsideSum += array[0][i]; // 上边
outsideSum += array[n - 1][i]; // 下边
outsideSum += array[i][0]; // 左边
outsideSum += array[i][n - 1]; // 右边
}
outsideSum -= array[0][0]; // 左上角
outsideSum -= array[0][n - 1]; // 右上角
outsideSum -= array[n - 1][0]; // 左下角
outsideSum -= array[n - 1][n - 1]; // 右下角
System.out.println("外圈元素之和:" + outsideSum);
// 把主对角线以下的元素设置为0
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) { // 主对角线以下
array[i][j] = 0;
}
}
System.out.println("主对角线以下的元素设置为0后的二维数组:");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(array[i][j] + " ");
}
System.out.println();
}
}
}
```
阅读全文