c语言输入一个整数N,输出一个N行N列的二维矩阵,矩阵中的元素用1——N*N顺序填充。
时间: 2024-10-19 15:09:25 浏览: 42
在C语言中,你可以使用嵌套循环来创建一个N行N列的二维数组,并按照1到N*N的顺序填充元素。这是一个简单的示例:
```c
#include <stdio.h>
#define N 5 // 更改此值以改变矩阵大小
int main() {
int matrix[N][N]; // 创建一个N x N的二维数组
int count = 1; // 计数器,用于填充元素
// 遍历并填充矩阵
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
matrix[i][j] = count++; // 每次递增计数器并将当前值赋给对应位置
}
}
// 打印矩阵
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", matrix[i][j]); // 使用printf打印每个元素
}
printf("\n"); // 换行继续下一行
}
return 0;
}
```
相关问题
c语言编程:给出一个n*n的二维矩阵(n<=10),输入一组元素,先在第一行输入n,接下来有n行,每行输入n个整数,输出该矩阵的周边元素之和
好的,可以按照如下代码实现:
```c
#include <stdio.h>
int main()
{
int n;
printf("请输入矩阵的大小 n:");
scanf("%d", &n);
int a[10][10];
printf("请输入矩阵的元素:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
int sum = 0;
for (int i = 0; i < n; i++) {
sum += a[0][i] + a[n-1][i]; // 第一行和最后一行
sum += a[i][0] + a[i][n-1]; // 第一列和最后一列
}
sum -= a[0][0] + a[0][n-1] + a[n-1][0] + a[n-1][n-1]; // 减去重复计算的四个角落的元素
printf("矩阵周边元素之和为:%d\n", sum);
return 0;
}
```
输入样例:
```
请输入矩阵的大小 n:4
请输入矩阵的元素:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
```
输出样例:
```
矩阵周边元素之和为:64
```
注意,这里假设用户输入的矩阵大小不超过10,如果需要更大的矩阵,需要修改数组的定义。
使用数组指针编写程序,将一个n×n(n≤10)的矩阵进行转置,即将行与列互换,转置后再按n×n矩阵形式输出。 输入格式: 输入整数n,从第2行开始依次输入n×n个整数,各数以一个空格间隔。 输出格式: 输出n行n列的二维数组,每个元素右对齐输出占4列。c语言
以下是一个使用数组指针的C语言程序,可以实现矩阵转置并输出:
```c
#include <stdio.h>
int main() {
int n, i, j;
printf("请输入矩阵的大小n(n<=10):");
scanf("%d", &n);
int matrix[n][n]; // 定义一个n×n的二维数组
int (*p)[n] = matrix; // 定义一个指向二维数组的指针
// 输入矩阵数据
printf("请输入矩阵数据:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 转置矩阵
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
int temp = *(*(p+i)+j);
*(*(p+i)+j) = *(*(p+j)+i);
*(*(p+j)+i) = temp;
}
}
// 输出矩阵
printf("转置后的矩阵为:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%4d", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
程序中定义了一个二维数组 `matrix` 来存储矩阵数据,定义了一个指向二维数组的指针 `p`,通过指针操作来实现矩阵转置。最后按照题目要求输出转置后的矩阵。
阅读全文