c语言将n*n的矩阵主对角线元素
时间: 2023-12-31 15:03:57 浏览: 35
可以使用循环语句来遍历矩阵的主对角线元素,例如:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入矩阵的大小n: ");
scanf("%d", &n);
int matrix[n][n];
printf("请输入矩阵的元素:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
printf("矩阵的主对角线元素为:\n");
for (int i = 0; i < n; i++) {
printf("%d ", matrix[i][i]);
}
return 0;
}
```
这段代码中,首先通过循环语句遍历矩阵的所有元素,并将其存储在二维数组中。然后再通过循环语句遍历矩阵的主对角线元素,并输出结果。
相关问题
C语言求n*n矩阵对角线元素之和
以下是两种C语言求n*n矩阵对角线元素之和的例子:
1.使用二维数组
```c
#include <stdio.h>
int main() {
int a[10][10]; //定义n*n的二维数组
int i, sum = 0, n; //i作为循环标号,sum用来求和;n就是我们要输入的n*n矩阵。
printf("input n 形成n*n矩阵\n");
scanf("%d", &n);
printf("\n");
//下面两个嵌套的for循环就是来初始化(赋值)数组。
for (i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
//因为n是我们输入的数,无法确定几个元素相加,就要使用循环解决。
for (i = 0; i < n; i++) {
sum += a[i][i]; //因为是相加对角线上的元素,所以该元素就是第n行,第n列。
}
printf("sum=%d", sum);
return 0;
}
```
2.使用条件判断
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5
int main() {
int score[N][N], i, j, sum = 0;
srand(time(NULL));
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
score[i][j] = rand() % 10 + 1;
}
}
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
if (i == j || j + i == N - 1) {
sum = sum + score[i][j];
}
printf("%-4d", score[i][j]);
}
printf("\n");
}
printf("%d\n", sum);
return 0;
}
```
用c语言将n*n的矩阵的主对角线元素的值与反向对角线的对应的位置上元素的值进行交换
假设矩阵用二维数组matrix表示,代码如下:
```c
#include<stdio.h>
int main(){
int n;
printf("请输入矩阵的维度n:");
scanf("%d", &n);
//定义并初始化矩阵
int matrix[n][n];
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
matrix[i][j] = i*n+j+1;
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
//交换主对角线元素和反向对角线对应位置上的元素
for(int i=0; i<n; i++){
int tmp = matrix[i][i];
matrix[i][i] = matrix[i][n-i-1];
matrix[i][n-i-1] = tmp;
}
//输出交换后的矩阵
printf("交换后的矩阵:\n");
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
代码解析:
1. 首先通过scanf函数获取矩阵的维度n;
2. 定义并初始化n*n的矩阵,其中matrix[i][j]表示第i行第j列的元素,初始化为1~n^2的连续整数;
3. 遍历矩阵,输出原始矩阵;
4. 遍历矩阵,交换主对角线元素和反向对角线对应位置上的元素,其中主对角线元素为matrix[i][i],反向对角线对应位置上的元素为matrix[i][n-i-1];
5. 遍历矩阵,输出交换后的矩阵。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)