首页 > 其他分享 >C语言小案例

C语言小案例

时间:2023-11-18 13:04:14浏览次数:41  
标签:insert arr int void ++ C语言 案例 bubble

在一个整型数组中插入任意一个数字,进行重新排序,用多种方法如何实现?

方法1:直接插入排序法

#include <stdio.h>

void insert(int arr[], int n, int x) {
    int i, j;
    for (i = 0; i < n; i++) {
        if (arr[i] > x) {
            for (j = n - 1; j >= i; j--) {
                arr[j + 1] = arr[j];
            }
            arr[i] = x;
            break;
        }
    }
    if (i == n) {
        arr[n] = x;
    }
}

int main() {
    int arr[10] = {1, 3, 5, 7, 9};
    int n = 5;
    int x;
    printf("请输入你要插入的数字:");
	scanf("%d",&x); 
    insert(arr, n, x);
    for (int i = 0; i < n + 1; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}

C语言小案例_#include

方法2:冒泡排序法

#include <stdio.h>

void bubble(int arr[], int n) {
    int i, j;
    for (i = 0; i < n - 1; i++) {
        for (j = 0; j < n - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

void insert(int arr[], int n, int x) {
    arr[n] = x;
    bubble(arr, n + 1);
}

int main() {
    int arr[10] = {1, 3, 5, 7, 9};
    int n = 5, x = 6;
    insert(arr, n, x);
    for (int i = 0; i < n + 1; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}

C语言小案例_i++_02

方法3:选择排序法

#include <stdio.h>

void bubble(int arr[], int n) {
    int i, j;
    for (i = 0; i < n - 1; i++) {
        for (j = 0; j < n - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

void insert(int arr[], int n, int x) {
    arr[n] = x;
    bubble(arr, n + 1);
}

int main() {
    int arr[10] = {1, 3, 5, 7, 9};
    int n = 5, x = 6;
    insert(arr, n, x);
    for (int i = 0; i < n + 1; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}

C语言小案例_#include_03

法2和法3所插入的数字是在程序中就指定了的,大家可以根据需求自行拓展!


标签:insert,arr,int,void,++,C语言,案例,bubble
From: https://blog.51cto.com/u_16174658/8460830

相关文章

  • 案例三嵌套循环
    案例三嵌套循环[root@localhostscript]#vimtest4.sh#!/usr/bin/bashforiin{1..100}dowhile[$i-lt50]do    echo$i    #leti++donedone[root@localhostscript]#chmod+xtest4.sh[root@localhostscript]#bashtest4.sh练习题:1.输入......
  • c4w2_深度卷积网络案例探究
    深度卷积模型:案例探究为什么要学习一些案例呢?就像通过看别人的代码来学习编程一样,通过学习卷积神经模型的案例,建立对卷积神经网络的(CNN)的“直觉”。并且可以把从案例中学习到的思想、模型移植到另外的任务上去,他们往往也表现得很好。接下来要学习的神经网络:经典模型:LeNet5、A......
  • 一个简单案例的Vue2.0源码
    本文学习vue2.0源码,主要从newVue()时发生了什么和页面的响应式更新2个维度了解Vue.js的原理。以一个简单的vue代码为例,介绍了这个代码编译运行的流程,在流程中原始DOM的信息会被解析转换,存在不同的对象中。其中关键的对象有el、template、ast、code、render、renderfunction和vno......
  • 杨辉三角c语言
    #include<stdio.h>#defineM10#defineN10intmain(){  inta[M][N],i,j;  for(i=0;i<M;i++) {  for(j=0;j<=i;j++)                     //先取9*9列的数都赋值为一,再取其中1/2的部分  a[i][j]=1;      ......
  • C语言——数组
    1.字符型数组与字符指针的赋值constchar*pStr="Hello!";charaStr[sizeof("Hello!")]="Hello!";cout<<aStr<<"\n"<<pStr<<endl;cout<<strlen(aStr)<<"\n"......
  • C语言笔记5
    C语言提供三种逻辑运算符:&&逻辑与两边运算量都为非0时,结果为真||逻辑或两边运算量都为0是,结果为假,否则为真。!逻辑非使操做数的值0变1,1变0说明:“&&”和“||”是“双目运算符”,要求有两个操做数。“!"是”单目运算符“,只要求有一个运算量。a&&ba、b均为真,则a&&b为1(......
  • C语言【运算符】
    C语言【运算符、分支控制语句】1、运算符分类按照操作个数分类:一元运算符(一目运算符):只有一个操作数。如负号-1。二元运算符(二目运算符):有两个操作数。如加号1+2。三元运算符(三目运算符):有三个操作数。如?:a>b?1:2。按功能分类:算数运算符:正(+)、负......
  • 基于 Angular Universal 引擎进行服务器端渲染的前端应用 State Transfer 故障排查案
    笔者之前这篇掘金文章一个SAP开发工程师的2022年终总结:四十不惑提到,我目前的团队,负责开发一款基于Angular框架的电商Storefront应用。这个Storefront是一个开源的、基于Angular和Bootstrap并为SAPCommerceCloud构建的Angular应用程序。图1:SpartacusStore......
  • c语言ATM机案例
    1#include<stdio.h>2intmain()3{4//password初始密码,input输入的密码money取款金额,balance卡余额,select选项,x表示输入密码的次数(错误的机会只有三次)5intpassword=1101,input,money,balance=300;6//select表示选择的选项7intselect......
  • PTAC语言删除字符串中的字串
    这是题目。初见觉得还好,谁知道越分析越操蛋暗含深意。仔细看,假设我们通过遍历s1删除了两个显性的cat,哎,剩下的是什么Tomisamalecat咋样,牛逼不。说明这题肯定会出现删除一次不够的样例sample。假设我们熟知C语言中#include<string.h>中的strcat,strstr,strcpy等函数,那么这题可以比......