字符串数组的冒泡排序,从小到大(冒泡法前几篇有例子)

来源:互联网 发布:淘宝美工基础 编辑:程序博客网 时间:2024/05/17 18:24

字符串数组的冒泡排序,从小到大

//main.c//author//连续输入是个字符,以回车结束#include "stdafx.h"//输入10个数字#define N 10char min(char a, char b);char max(char a, char b);int main(){    //int a[N] = { 10,9,8,7,6,5,4,3,2,1 };    int flag = N;    //指针的方法    char a[N] = { 0 };    char *p = a;    for (int i = 0; i < N; i++)    {        scanf_s("%c", p);        p++;    }    p = &a[0];    for (int i = 0; i < N; i++)    {        printf("输入的数为%c\n", *p++);    }    p = a;    while (1)    {        for (int i = 0; i < flag - 1; i++)        {            char tmp1 = *(p + i);            char tmp2 = *(p + i + 1);            *(p + i) = min(tmp1, tmp2);            *(p + i + 1) = max(tmp1, tmp2);        }        if (flag == 2)break;        flag--;    }    p = a;    for (int i = 0; i < N; i++)    {        printf("%c ", *(p + i));    }    //数组的方法    /*while (1)    {    for (int i = 0; i < flag - 1; i++)    {    int tmp1 = a[i];    int tmp2 = a[i + 1];    a[i + 1] = max(tmp1, tmp2);    a[i] = min(tmp1, tmp2);    }    if (flag == 2)break;    flag--;    }    for (int i = 0; i < N; i++)    {    printf("%d ", a[i]);    }*/    return 0;}char max(char a, char b){    return a > b ? a : b;}char min(char a, char b){    return a < b ? a : b;}

结果如图,本题有前面的冒泡排序程序改写
这里写图片描述

0 0
原创粉丝点击