C语言期末习题之二维数组转置

简介: C语言期末习题之二维数组转置

1.题目

写一个函数,使得给定的4×4的二维数组x[4][4]转置,即进行列互换。


2.思路

这个题可以使用两层循环来遍历给定的二维数组,然后将每一列的元素与对应行的元素进行交换,从而实现转置操作。具体思路如下:

1. 使用两层循环遍历整个二维数组,外层循环控制列的位置,内层循环遍历列中的所有元素。

2. 对于每一次遍历的元素,先使用一个临时变量 `temp` 保存其值。

3. 然后将这个元素与同一行中的对应位置的元素进行交换,即将 `x[i][j]` 的值赋给 `x[j][i]`,将 `x[j][i]` 的值赋给 `x[i][j]`。

4. 最后将 `temp` 中保存的值赋给新位置的元素,从而完成一次交换操作。

接下来手搓代码qwq


3.代码实现

#include <stdio.h>
 
void transpose(int x[4][4])
{
    int i, j, temp;
 
    for (i = 0; i < 4; i++) 
    {
        for (j = i + 1; j < 4; j++) 
        {
            temp = x[i][j]; // 保存当前元素的值
            x[i][j] = x[j][i]; // 进行交换操作
            x[j][i] = temp;
        }
    }
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<4;j++)
        {
            printf("%d ",x[i][j]);//打印交换后的数组
        }
       printf("\n");//每打印一行就换行,好看一点
    }
 
}


目录
相关文章
TU^
|
3月前
|
存储 C语言
C语言习题~day35
C语言习题~day35
TU^
21 1
|
11天前
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
|
11天前
|
存储 人工智能 C语言
C语言程序设计核心详解 第六章 数组_一维数组_二维数组_字符数组详解
本章介绍了C语言中的数组概念及应用。数组是一种存储同一类型数据的线性结构,通过下标访问元素。一维数组定义需指定长度,如`int a[10]`,并遵循命名规则。数组元素初始化可使用 `{}`,多余初值补0,少则随机。二维数组扩展了维度,定义形式为`int a[3][4]`,按行优先顺序存储。字符数组用于存储字符串,初始化时需添加结束符`\0`。此外,介绍了字符串处理函数,如`strcat()`、`strcpy()`、`strcmp()` 和 `strlen()`,用于拼接、复制、比较和计算字符串长度。
|
1月前
|
机器学习/深度学习 C语言
【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)
要保持最小的步数,每一次汉诺塔问题(无论是最初还是递归过程中的),如果此时初始柱盘子数为偶数,我们第一步是把最上面的盘子移动到中转柱,如果为奇数,我们第一步则是将其移动到目标柱。
【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)
|
2月前
|
存储 C语言 C++
PTA—C语言期末复习(选择题)
PTA—C语言期末复习(选择题)
TU^
|
3月前
|
算法 程序员 C语言
C语言习题~day36
C语言习题~day36
TU^
31 1
TU^
|
3月前
|
存储 C语言
C语言习题~day34
C语言习题~day34
TU^
20 1
TU^
|
3月前
|
C语言
C语言习题~day39
C语言习题~day39
TU^
16 0
C语言习题~day39
|
2月前
|
C语言
PTA—C语言期末复习(判断题)
PTA—C语言期末复习(判断题)
|
3月前
|
IDE 编译器 开发工具
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
23 0