c语言 题目描述 构造 n 阶下三角矩阵。即对角线上方元素值为 0,其余元素值如样例所示。 要求:使用二维数组实现。 输入格式: 输入整数 n(1<n<=20)。 输出格式: 输出 n×n 的矩阵,共 n 行,每行 n 个元素,每个元素 4 格,右对齐。 输入样例: 3 输出样例: 1 0 0 2 3 0 4 5 6 输入样例: 4 输出样例: 1 0 0 0 2 3 0 0 4 5 6 0 7 8 9 10
时间: 2024-02-15 13:05:48 浏览: 29
这道题目需要使用二重循环来赋值和输出二维数组,具体实现可以参考下面的代码:
```c
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n); // 输入 n
int arr[n][n];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (j > i) // 对角线上方元素
arr[i][j] = 0;
else // 对角线及其下方元素
arr[i][j] = (i - j) * (j + 1) + j; // 赋值
printf("%4d", arr[i][j]); // 输出
}
printf("\n");
}
return 0;
}
```
需要注意的是,数组元素需要占 4 位,需要使用 `%4d` 的格式化输出。
相关问题
c语言 题目描述 构造 n 阶下三角矩阵。即对角线上方元素值为 0,其余元素值如样例所示。 要求:使用二维数组实现。 输入格式: 输入整数 n(1<n<=20)。 输出格式: 输出 n×n 的矩阵,共 n 行,每行 n 个元素,每个元素 4 格,右对齐。 输入样例: 3 输出样例: 1 0 0 2 3 0 4 5 6
这道题目需要使用二重循环来赋值和输出二维数组,具体实现可以参考下面的代码:
```c
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n); // 输入 n
int arr[n][n];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (j > i) // 对角线上方元素
arr[i][j] = 0;
else // 对角线及其下方元素
arr[i][j] = (i - j) * (j + 1) + j; // 赋值
printf("%4d", arr[i][j]); // 输出
}
printf("\n");
}
return 0;
}
```
需要注意的是,数组元素需要占 4 位,需要使用 `%4d` 的格式化输出。
c语言构造n阶下三角矩阵。即对角线上方元素值为0,其余元素值如样例所示。要求:使用二维数组实现。输入格式: 输入整数n(1<n<=20)。输出格式: 输出n×n的矩阵,共n行,每行n个元素,每个元素4格,右对齐。输入样例: 3 输出样例: 1 0 0 2 3 0 4 5 6
好的,以下是使用二维数组实现构造n阶下三角矩阵的C语言代码:
```
#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
int a[n][n];
// 构造矩阵
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
if(j > i)
{
a[i][j] = 0; // 对角线上方元素值为0
}
else
{
a[i][j] = i*(i+1)/2+j+1-i; // 计算对应位置的元素值
}
}
}
// 输出矩阵
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
printf("%4d", a[i][j]);
}
printf("\n");
}
return 0;
}
```
输入样例:3
输出样例:
```
1 0 0
2 3 0
4 5 6
```
阅读全文