C语言小作业字符串英文排序数组排序删除

C 专栏收录该内容
41 篇文章 6 订阅

(1)随机产生20个int类型的数组元素,编写并调用函数用冒泡排序法按降序排列后输出;编写并调用函数用简单选择排序法按降序排列后输出;

(2)输入几个英文姓氏,对其进行升序排列。

(3)向一个已经排好序的数组a中插入一个数,要求插入后数组仍按原来的规律排序,然后再将该数组的第3个元素删除,请编程实现该操作并显示插入和删除以后的数组。

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int nums[20];

int i,j,k,tmp;



void product_num();

void maopao_rank();

void simple_rank();



void main(){

        printf("请选择排序方式!输入数字1:冒泡排序,2:选择排序\n");

        scanf_s("%d",&k);

        if(k==1){

            product_num();

            maopao_rank();

        }else if(k==2){

            product_num();

            simple_rank();

        }else{

            printf("输入不符请重新输入");

        }

}



void product_num(){

    srand((unsigned int)time(NULL));

    for(i=0;i<20;i++){

        nums[i]=rand()%100;

    }

}

void maopao_rank(){

    for(j=1;j<20;j++){

        for(i=0;i<20-j;i++){

            if(nums[i]<nums[i+1]){

                tmp=nums[i];

                nums[i]=nums[i+1];

                nums[i+1]=tmp;

            }

        }

    }

    for(i=0;i<20;i++){

        printf("%d  ",nums[i]);

    }

}

void simple_rank(){

    for(j=0;j<19;j++){

        int max=j;

        for(i=j+1;i<20;i++){

            if(nums[i]>nums[max]){

                tmp=nums[max];

                nums[max]=nums[i];

                nums[i]=tmp;

            }

        }

    }

    for(i=0;i<20;i++){

        printf("%d  ",nums[i]);

    }

}

这里写图片描述


2:

#include <stdio.h>

#include <string>



void main() {

    printf("请输入5个英文姓氏");

    char *a[5];

    char *tmp;

    int m = 5, i, j;

    for (i = 0; i < m;i++) {

        gets(a[i]);

    }

    for (i = 0; i < m - 1; i++) {

        for (j = i + 1; j < m; j++) {

            if (strcmp(a[i], a[j]) >0) {

                tmp = a[i];

                a[i] = a[j];

                a[j] = tmp;

            }

        }

    }

    for (i = 0; i < m; i++) {

        puts(a[i]);

    }

}

这里写图片描述

3:



#include <stdio.h>

void main(){

    int a[6]={1,4,9,13,25};

    int x,i;



    printf("请输入数字:\n");

    scanf("%d",&x);

    for(i=4;i>=0;i--){

        if(a[i]>x){

            a[i+1]=a[i];

        }else{

            break;

        }

    }

    a[i+1]=x;

    printf("插入数组后:\n");

    for(i=0;i<6;i++){

        printf("%d ",a[i]);;

    }

    printf("删除数组第三个后:\n");

    for(i=2;i<6;i++){

        a[i]=a[i+1];

    }

    for(i=0;i<5;i++){

        printf("%d ",a[i]);;

    }

}

这里写图片描述

  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值