c语言,输入正整数 n, 并在屏幕上输出 n 阶单位矩阵 . (用嵌套的 for 循环)
时间: 2024-05-22 22:13:11 浏览: 88
#include <stdio.h>
int main() {
int n;
printf("请输入正整数n:");
scanf("%d", &n);
// 输出 n 阶单位矩阵
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i == j) {
printf("1 ");
} else {
printf("0 ");
}
}
printf("\n");
}
return 0;
}
相关问题
7-5 顺时针矩阵 分数 6 作者 李卫明 单位 杭州电子科技大学 读入20内正整数正整数n,输出顺时针分布的矩阵。矩阵内容为1,2,。。。到n*n。 输入格式: 每个实例包含一个20内正整数。 输出格式: 顺时针分布的矩阵,每个数据占4位。用C语言表示
题目描述的是一个二维矩阵的生成问题,称为“顺时针螺旋矩阵”或“马丁斯螺旋”。给定一个正整数n,我们需要按照一定的顺序填充一个n * n的矩阵,从左上角开始,顺时针方向递增。
以下是一个简单的C语言函数示例,它将打印出这个矩阵:
```c
#include <stdio.h>
void printSpiral(int n) {
int matrix[n][n], num = 1;
int i, j;
// 初始化矩阵
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
matrix[i][j] = num++;
}
}
// 打印顺时针螺旋
while (num <= n * n) {
// 左侧
for (i = 0; i < n && matrix[i][n - 1]; i++) {
printf("%04d", matrix[i][n - 1]);
}
// 上方
for (j = n - 2; j >= 0 && matrix[n - 1][j]; j--) {
printf("%04d", matrix[n - 1][j]);
}
// 右侧
for (i = n - 2; i >= 0 && matrix[j][i]; i--) {
printf("%04d", matrix[j][i]);
}
// 下方
for (j = 1; j < n && matrix[i][j]; j++) {
printf("%04d", matrix[i][j]);
}
printf("\n");
num += 4; // 每次循环移动四个位置
}
}
int main() {
int n;
scanf("%d", &n);
if (n > 20) {
printf("Input should be within the range of 20.\n");
} else {
printSpiral(n);
}
return 0;
}
```
在这个代码里,我们首先创建一个大小为n * n的矩阵,并按顺序填充数字。然后通过四次嵌套循环,依次打印矩阵的左侧、上方、右侧和下方的部分,形成顺时针螺旋的效果。
阅读全文