输入一个正整数n,输入n个数,生成一个n*n的矩阵并输出出来,矩阵第一行是输入的n个数,以后每一行都是上一行循环左移的一个元素
时间: 2023-11-22 10:56:55 浏览: 77
以下是 Python 代码实现:
```python
n = int(input()) # 输入正整数 n
nums = list(map(int, input().split())) # 输入 n 个数
# 生成矩阵
matrix = [[0] * n for _ in range(n)]
for i in range(n):
matrix[0][i] = nums[i]
# 循环左移生成每一行
for i in range(1, n):
for j in range(n):
matrix[i][j] = matrix[i-1][(j+1)%n]
# 输出矩阵
for i in range(n):
print(' '.join(str(matrix[i][j]) for j in range(n)))
```
示例输入:
```
4
1 2 3 4
```
示例输出:
```
1 2 3 4
2 3 4 1
3 4 1 2
4 1 2 3
```
相关问题
Java实现输入一个正整数n,输入n个数,生成一个n*n的矩阵并输出出来,矩阵第一行是输入的n个数,以后每一行都是上一行循环左移的一个元素 举例: 输入的n=5; 输入的数字是:2 5 8 4 9 得到的矩阵是: 2 5 8 4 9 5 8 4 9 2 8 4 9 2 5 4 9 2 5 8 9 2 5 8 4
可以使用二维数组来存储矩阵,然后按照题目要求生成矩阵并输出。具体代码如下:
```
import java.util.Scanner;
public class MatrixGenerator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入正整数n:");
int n = scanner.nextInt();
int[][] matrix = new int[n][n];
System.out.print("请输入" + n + "个数字,用空格隔开:");
for (int i = 0; i < n; i++) {
matrix[0][i] = scanner.nextInt();
}
for (int i = 1; i < n; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = matrix[i - 1][(j + 1) % n];
}
}
System.out.println("生成的矩阵为:");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
}
```
输入样例:
```
请输入正整数n:5
请输入5个数字,用空格隔开:2 5 8 4 9
```
输出样例:
```
生成的矩阵为:
2 5 8 4 9
5 8 4 9 2
8 4 9 2 5
4 9 2 5 8
9 2 5 8 4
```
用c语言编写一个程序,输入一个正整数n,n<10,生成一个n*n的矩阵,矩阵中第一行是输入的n个整数,以后的每一行都是上一行循环右移一个元素
好的,以下是用 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 行的位置。
最后,程序输出生成的矩阵。
阅读全文