用c语言编写一个程序,输入一个正整数n,n<10,生成一个n*n的矩阵,矩阵中第一行是输入的n个整数,以后的每一行都是上一行循环右移一个元素
时间: 2024-04-02 22:33:01 浏览: 76
n阶行列式计算 C语言 实现
4星 · 用户满意度95%
好的,以下是用 C 语言编写的程序,可以实现你的要求:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入正整数n(n<10):");
scanf("%d", &n);
int matrix[n][n];
printf("请输入%d个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &matrix[0][i]);
}
for (int i = 1; i < n; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = matrix[i-1][(j+n-1)%n];
}
}
printf("生成的矩阵为:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
程序的思路是先读入第一行的 n 个整数,然后根据题目要求循环右移生成后面的行。循环右移可以用取模运算实现,即 `(j+n-1)%n` 表示将第 i-1 行第 j 个元素往右移动一个位置后在第 i 行的位置。
最后,程序输出生成的矩阵。
阅读全文