当前位置: 首页 > article >正文

C语言第十一周课——函数的调用

目录

 一、冒泡法排序

二、二分法查找


 一、冒泡法排序

  通过调用函数来实现冒泡法

#include<stdio.h>
// 定义数组长度
#define SIZE 3
void bubbleSort(int arr[], int n);

int main()
{
    int arr[SIZE];
    int i;

    // 从控制台输入数字到数组
    printf("请输入%d个整数:\n", SIZE);
    for (i = 0; i < SIZE; i++)
    {
        scanf("%d", &arr[i]);
    }

    // 调用冒泡排序函数
    bubbleSort(arr, SIZE);

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

void bubbleSort(int arr[], int n)
{
    int i, j, temp;
    for (i = 0; i < n - 1; i++)
    {
        for (j = 0; j < n - i - 1; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                // 交换元素
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

二、二分法查找

   通过调用函数来实现二分法

#include <stdio.h>

// 定义数组长度
#define SIZE 10

// 二分查找函数
int binarySearch(int arr[], int n, int target)
{
    int left = 0;
    int right = n - 1;

    while (left <= right)
    {
        // 计算中间元素的索引
        int mid = left + (right - left) / 2;

        if (arr[mid] == target)
        {
            return mid;
        }
        else if (arr[mid] < target)
        {
            right = mid - 1;
        }
        else
        {
            left = mid + 1;
        }
    }

    return -1; // 如果未找到目标元素,返回 -1
}

int main()
{
    int arr[SIZE] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
    int target;

    // 从控制台输入要查找的目标数字
    printf("请输入要查找的数字:\n");
    scanf("%d", &target);

    // 调用二分查找函数
    int result = binarySearch(arr, SIZE, target);

    if (result!= -1)
    {
        printf("目标数字 %d 在数组中的索引为 %d\n", target, result);
    }
    else
    {
        printf("未找到目标数字 %d\n", target);
    }

    return 0;
}

http://www.kler.cn/a/398682.html

相关文章:

  • 计算机组成与原理(2) basic of computer architecture
  • Python Excel XLS或XLSX转PDF详解:七大实用转换设置
  • 数据库的隔离机制---对MySQL 默认隔离级别的理解
  • 计算机网络:运输层 —— TCP的流量控制
  • SpringBoot集成itext导出PDF
  • 大模型(LLMs)进阶篇
  • 网络层9——虚拟专用网VPN和网络地址转换NAT
  • 多目标优化算法:多目标红嘴蓝鹊优化算法(MORBMO)求解UF1-UF10,提供完整MATLAB代码
  • 开源,一天200star,解锁视频字幕生成新方式——一款轻量级开源字幕工具,免费,支持花字,剪映最新会员模式吃相太难看了
  • 配置LVGL的WIN下vscode的仿真demo
  • (动画版)排序算法 -希尔排序
  • ubuntu-server-22.04上手指南
  • 前端—Cursor编辑器
  • 【Android compose原创组件】在Compose里面实现内容不满一屏也可以触发边界阻尼效果的一种可用方法
  • Python中的with语句
  • Node.js事件循环:解锁异步编程的奥秘
  • Linux系统:线程
  • nginx证书流式响应配置
  • NLP论文速读(微软出品)|使用GPT-4进行指令微调(Instruction Tuning with GPT-4)
  • 跨平台WPF框架Avalonia教程 七
  • 【更新中】《硬件架构的艺术》笔记(三):处理多个时钟
  • 分布式相关杂项
  • 消除样本输入顺序影响的BP网络学习改进算法详解
  • 结构化需求分析与设计
  • 【STM32】I2C通信协议
  • QT入门之下载、工程创建、学习方法