用c语言生成一个3行3列的二维数组,交换两条对角线的值并输出
时间: 2024-05-05 08:18:19 浏览: 11
好的,可以使用以下代码来生成一个3行3列的二维数组,并交换两条对角线的值:
```c
#include <stdio.h>
int main() {
int arr[3][3] = {{1,2,3}, {4,5,6}, {7,8,9}};
// 交换两条对角线的值
for (int i=0; i<3; i++) {
int tmp = arr[i][i];
arr[i][i] = arr[i][2-i];
arr[i][2-i] = tmp;
}
// 输出结果
for (int i=0; i<3; i++) {
for (int j=0; j<3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
这段代码可以将原来的数组:
1 2 3
4 5 6
7 8 9
变为:
3 2 1
4 5 6
9 8 7
希望这个回答能够对您有帮助。
相关问题
编写C语言程序,从键盘中输入一个三行三列的二维数组,交换两条对角线的值,输出交换后的二维数组
好的,这个问题可以回答。以下是C语言程序的代码:
#include <stdio.h>
int main() {
int matrix[3][3];
// 从键盘输入二维数组
printf("请输入一个3行3列的二维数组:\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 交换对角线上的两个元素
int temp = matrix[0][0];
matrix[0][0] = matrix[2][2];
matrix[2][2] = temp;
temp = matrix[0][2];
matrix[0][2] = matrix[2][0];
matrix[2][0] = temp;
// 输出交换后的二维数组
printf("交换后的二维数组为:\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
用c语言编写一个3行6列二维数组,计算每一个的最大值并输出的代码
以下是用C语言编写的计算3行6列二维数组每个元素最大值的代码:
```c
#include <stdio.h>
int main() {
int arr[3][6] = {{1, 2, 3, 4, 5, 6},
{7, 8, 9, 10, 11, 12},
{13, 14, 15, 16, 17, 18}};
int i, j, max;
for (i = 0; i < 3; i++) {
for (j = 0, max = arr[i][0]; j < 6; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
}
}
printf("第%d行的最大值为:%d\n", i + 1, max);
}
return 0;
}
```
以上代码中,我们首先定义了一个3行6列的二维数组`arr`,然后使用两个嵌套的循环遍历每一个元素,并记录每一行的最大值,最后输出每一行的最大值。