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

(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]);;

    }

}

这里写图片描述

猜你喜欢

转载自blog.csdn.net/zkd758/article/details/80303653