c语言如何输入3x3数组反对角线
时间: 2023-09-16 21:15:53 浏览: 72
要输入3x3数组的反对角线,可以使用以下代码:
```c
#include <stdio.h>
int main() {
int arr[3][3];
printf("请输入3x3数组的元素:\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
scanf("%d", &arr[i][j]);
}
}
printf("反对角线的元素为:");
for (int i = 0; i < 3; i++) {
printf("%d ", arr[i][2 - i]);
}
return 0;
}
```
这个程序首先定义了一个3x3的整型数组`arr`,然后通过嵌套的`for`循环来依次输入每个元素的值。最后,使用一个`for`循环来输出反对角线上的元素,即`arr[0][2]`、`arr[1][1]`、`arr[2][0]`。
相关问题
用C语言写:【问题描述】 输入矩阵阶数,最大10阶。输入矩阵元素值,要求为正整数。以反对角线为界翻转两个三角区域的元素值,反对角线上元素不变。反对角线指矩阵右上角到左下角的斜线。 【输入形式】 第一行,输入一个正整数,范围在2~10.。超界则结束程序。 以下各行,输入矩阵元素值,各元素用一个空格隔开 【输出形式】 翻转后的矩阵。各元素占3位宽度 【样例输入】 4 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7 【样例输出】 7 6 5 4 6 5 4 3 5 4 3 2 4 3 2 1
好的,以下是用C语言编写的程序:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入一个正整数n(范围在2~10):");
scanf("%d", &n);
if (n < 2 || n > 10) {
printf("输入超界,程序结束。\n");
return 0;
}
int matrix[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i + j < n - 1) {
int temp = matrix[i][j];
matrix[i][j] = matrix[n - 1 - j][n - 1 - i];
matrix[n - 1 - j][n - 1 - i] = temp;
}
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%3d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
程序中,首先通过 `scanf` 函数获取用户输入的整数 `n`,并进行范围判断。然后定义一个 `n` 行 `n` 列的数组 `matrix`,用于存储用户输入的矩阵元素。接着使用双重循环,将用户输入的矩阵元素一一存储到 `matrix` 数组中。再使用双重循环,遍历矩阵中反对角线上、左下角、右上角的元素,进行值交换,从而实现矩阵的翻转。最后再次使用双重循环,将翻转后的矩阵按照题目要求输出即可。
【问题描述】 输入矩阵阶数,最大10阶。输入矩阵元素值,要求为正整数。以反对角线为界翻转两个三角区域的元素值,反对角线上元素不变。反对角线指矩阵右上角到左下角的斜线。 【输入形式】 第一行,输入一个正整数,范围在2~10.。超界则结束程序。 以下各行,输入矩阵元素值,各元素用一个空格隔开 【输出形式】 翻转后的矩阵。各元素占3位宽度用C语言
以下是C语言实现的代码:
```
#include <stdio.h>
int main() {
int n, matrix[10][10], i, j, temp;
// 读入矩阵阶数
printf("请输入矩阵阶数:\n");
scanf("%d", &n);
if (n < 2 || n > 10) {
printf("矩阵阶数超出范围!\n");
return 0;
}
// 读入矩阵元素值
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 = 0; j < n; j++) {
if (i + j < n - 1) {
// 翻转左下角的元素
temp = matrix[i][j];
matrix[i][j] = matrix[n - 1 - j][n - 1 - i];
matrix[n - 1 - j][n - 1 - i] = temp;
} else if (i + j > n - 1) {
// 翻转右上角的元素
temp = matrix[i][j];
matrix[i][j] = matrix[n - 1 - j][n - 1 - i];
matrix[n - 1 - j][n - 1 - i] = temp;
}
// 反对角线上元素不变
}
}
// 输出矩阵
printf("翻转后的矩阵为:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%3d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
输入示例:
```
请输入矩阵阶数:
4
请输入矩阵元素值:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
```
输出示例:
```
翻转后的矩阵为:
16 7 3 1
14 11 8 2
15 10 6 4
13 9 5 12
```
阅读全文