C语言基础------练习

1.求二维数组中元素的最大值,并输出行标和列标

代码运行结果:

代码实现解析:

复制代码
//定义并初始化二维数组

int arr[3][4] = {
  
  {1, 2, 3, 4},{5, 6, 7, 8},{9, 10, 11, 12}};
//这里定义了一个3行4列的二维数组,并初始化了其元素。

//初始化最大值及其行标和列标

int max_value = arr[0][0]; // 假设第一个元素是最大值
int max_row = 0;
int max_col = 0;
//假设第一个元素是最大值,并初始化行标和列标为0。

//遍历二维数组

//for (int i = 0; i < 3; i++) 
{
    for (int j = 0; j < 4; j++) 
{
        if (arr[i][j] > max_value) 
{
            max_value = arr[i][j];
            max_row = i;
            max_col = j;
        }
    }
}
//使用嵌套的 for 循环遍历二维数组中的每个元素。如果当前元素大于 max_value,则更新 max_value 及其对应的行标和列标。

//输出结果

printf("最大值是 %d,位于第 %d 行,第 %d 列\n", max_value, max_row, max_col);
打印最大值及其所在的行标和列标。

运行结果
最大值是 12,位于第 2 行,第 3 列

2.定义一个数组,要求长度使用宏定义,终端输入数组中的数据,实现冒泡排序

a.//添加标志位,标志位要求,终端输入,如果输入1,升序,输入0降序。

代码运行结果:

代码实现解析:

复制代码
//宏定义数组长度
#define ARRAY_SIZE 5
//使用宏定义数组的长度为5。

//主函数

int main(int argc, const char *argv[])
{
    int arr[ARRAY_SIZE];
    int i, j, temp;
    int ascending;

    // 输入数组元素
    printf("请输入 %d 个整数:\n", ARRAY_SIZE);
    for (i = 0; i < ARRAY_SIZE; i++) 
{
        printf("元素 %d: ", i + 1);
        scanf("%d", &arr[i]);
    }

    // 输入排序标志位
    printf("请输入排序标志位(1 升序,0 降序): ");
    scanf("%d", &ascending);

    // 冒泡排序
    for (i = 0; i < ARRAY_SIZE - 1; i++) 
{
        for (j = 0; j < ARRAY_SIZE - i - 1; j++) 
{
            if ((ascending && arr[j] > arr[j + 1]) || (!ascending && arr[j] < arr[j + 1])) {
                // 交换 arr[j] 和 arr[j + 1]
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }

    // 输出排序后的数组
    printf("排序后的数组:\n");
    for (i = 0; i < ARRAY_SIZE; i++) 
{
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
}
/*定义数组 arr 并输入其元素。
输入排序标志位 ascending。
使用嵌套的 for 循环实现冒泡排序:
外层循环控制遍历的次数。
内层循环进行相邻元素的比较和交换。
根据标志位 ascending 决定比较和交换的条件。
输出排序后的数组。
运行示例
假设用户输入如下:

请输入 5 个整数:
元素 1: 5
元素 2: 3
元素 3: 8
元素 4: 1
元素 5: 4
请输入排序标志位(1 升序,0 降序): 1
输出将是:

排序后的数组:
1 3 4 5 8 
如果用户输入排序标志位为0:

请输入排序标志位(1 升序,0 降序): 0
输出将是:

排序后的数组:
8 5 4 3 1 
*/
相关推荐
gongfuyd几秒前
傅里叶变换、拉普拉斯变换、Z 变换的定义及关系
算法·机器学习·概率论
珂朵莉MM3 分钟前
第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第三赛季--前五题总结
人工智能·算法
啊阿狸不会拉杆3 分钟前
《数字图像处理》第2章-数字图像基础
图像处理·python·算法·计算机视觉·数字图像处理
云飞云共享云桌面5 分钟前
云飞云智能共享云桌面:企业PLM/ERP/MES等系统管理的革新方案
运维·服务器·网络·算法·性能优化
yaoh.wang7 分钟前
力扣(LeetCode) 9: 回文数 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·跳槽
deng-c-f8 分钟前
C/C++内置库函数(2):智能指针
java·c语言·c++
yuhaiqun19899 分钟前
新手练 C++ HTTP 服务实操:从 “拆请求头” 到 “发 HTML 响应”
c语言·c++·程序人生·http·html·学习方法·改行学it
小年糕是糕手9 分钟前
【C/C++刷题集】类和对象算法题(一)
数据结构·c++·程序人生·考研·算法·leetcode·改行学it
野生风长11 分钟前
从零开始的C语言: 指针深入理解从入门到实践(中)指针与数组的结合
c语言·数据结构·算法
一叶之秋141216 分钟前
从零掌握 List:高效操作与性能优化实战
数据结构·c++·list