c语言的升序排列,c语言中升序排序函数

发布时间:2022-11-24

本文目录一览:

  1. C语言,数据升序排列
  2. C语言字符升序排列~
  3. C语言的升序和降序

C语言,数据升序排列

#include "stdio.h"
int main(int argc, char *argv[]) {
    int a[100], i, j, k, n;
    printf("Input n (int 0 < n < 101)...\n");
    if (scanf("%d", &n) != 1 || n < 1 || n > 100) {
        printf("An error occurred when input n, exit...\n");
        return 0;
    }
    printf("Please enter %d integer(s)...\n", n);
    for (i = 0; i < n; scanf("%d", a + i++));
    for (i = 0; i < n; i++) {
        for (k = i, j = k + 1; j < n; j++)
            if (a[k] > a[j])
                k = j;
        if (k - i)
            j = a[k], a[k] = a[i], a[i] = j;
        printf(i ? " %d" : "%d", a[i]);
    }
    printf("\n");
    return 0;
}

运行样例:

C语言字符升序排列~

输入10个字符串,并按字母从小到大排序

#include "stdio.h"
#include "string.h"
void sort(char array[][20], int n);
main(void) {
    char str[10][20];
    int i, j, k, n;
    printf("input n (n=10):");
    scanf("%d", &n);
    printf("input %d string:", n);
    for (i = 0; i < n; i++)
        gets(str[i]); // 输入N个字符串
    sort(str, n);   // 对输入的字符串排序
    printf("sort string:\n");
    for (i = 0; i < n; i++)
        puts(str[i]);
    return 0;
}
void sort(char array[][20], int n) // 定义排序函数
{
    char temp[20];
    int i, j, k;
    for (i = 1; i < n - 1; i++) {
        k = i;
        for (j = i + 1; j < n; j++)
            if (strcmp(array[k], array[j]) > 0)
                k = j;
        if (k != i) {
            strcpy(temp, array[i]); // 字符串交换顺序
            strcpy(array[i], array[k]);
            strcpy(array[k], temp);
        }
    }
}

如上源码所示,其实也不难发现,就一个排序函数便可以解决;解决思想,还是交换法;在这里明白字符串数组str[0],便是第一个主的字符串,跟这个2维str[0][20]是一个意思。

C语言的升序和降序

#include<stdio.h>
void main() {
    int a[5] = {};
    int i, j;
    int temp = 0;
    for (i = 0; i < 5; i++) {
        printf("请输入第%d个整数\n", i + 1);
        scanf("%d", &a[i]);
    }
    for (i = 1; i < 5; i++) {
        for (j = 0; j < 5 - i; j++) {
            if (a[j] > a[j + 1]) // 把大于号改成小于号
            {
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
        }
    }
    for (i = 0; i < 5; i++) {
        printf("排序后的整数:%d\t", a[i]);
    }
}
if(a[j]a[j+1])....................//把大于号改成小于号