C语言5.(程序题)[问题描述]4.3编程实现输出矩阵上/下三角的数值。要求:输入一个正整数n和n阶矩阵的数值,打印输出矩阵、下三角和上三角的数值。
时间: 2024-09-30 09:08:32 浏览: 55
cpp代码-大作业第二题: 输入一个5行5列的二维数组,编程实现: (1) 求出其中的最大值和最小值及其对应的行列位置; (2) 求出上三角上各元素之和(上三角的元素a[i][j] ,i+j<5)。
在C语言中,你可以通过两层循环来实现这个功能。首先,我们需要读取用户输入的矩阵元素,然后根据矩阵的大小和索引生成上三角和下三角的输出。下面是一个简单的示例代码:
```c
#include <stdio.h>
void print_upper_triangle(int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", matrix[i][j]); // 假设matrix数组存储了输入的矩阵
}
printf("\n");
}
}
void print_lower_triangle(int n) {
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
printf("%d ", matrix[j][i]); // 下三角从对角线开始向左下角填充
}
printf("\n");
}
}
int main() {
int n;
printf("Enter the size of the matrix: ");
scanf("%d", &n);
int matrix[n][n]; // 假设矩阵足够大存储n*n的数字
// 读入矩阵元素
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("Enter element %d,%d: ", i+1, j+1); // 从1开始计数
scanf("%d", &matrix[i][j]);
}
}
printf("Matrix:\n");
// 打印完整矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
printf("Upper Triangle:\n");
print_upper_triangle(n);
printf("Lower Triangle:\n");
print_lower_triangle(n);
return 0;
}
```
在这个程序中,我们先创建一个函数`print_upper_triangle`用于打印上三角,另一个函数`print_lower_triangle`用于打印下三角。记得在实际应用中处理可能出现的错误,比如用户输入非正整数的情况。
阅读全文