我爱橙 发表于 2022-4-25 11:34:11

C5 用起泡法对连续输入的十个字符排序

#define N 10

#include<stdio.h>
#include<string.h>


main()
{
    int i;
    char str;
/**************FOUND********/
    for(i=0;i<N;i++)scanf("%c",str);         
/**************FOUND********/
    sort(str);   
    for(i=0;i<N;i++)
        printf("%c",str);
        printf("\n");
}

sort(char str)
{
    int i,j;char t;
    for(j=1;j<N;j++)
/**************FOUND********/
    for(i=0;i<N-j;i--)
/**************FOUND********/
    if(str<str)
        {
                t=str;
                str=str;
                str=t;
        }
   
}

14        16        'sort' was not declared in this scope
“sort函数用于C++中,对给定区间所有元素进行排序,默认为升序,也可进行降序排序。sort函数进行排序的时间复杂度为n*log2n,比冒泡之类的排序算法效率要高,sort函数包含在头文件为#include<algorithm>的c++标准库中。”

correct:
1. for(i=0;i<N;i++)scanf("%c",&str);         √   
2. sort(str);
3. for(i=0;i<N-j;i++)                                        √
4. if(str>str)      or   if(str<str)

傻眼貓咪 发表于 2022-4-25 13:32:59

#include <stdio.h>
#define N 10

void sort(char); // <------- 注意这里,要先声明,还有不要忘记加 void!!

int main() // <------------- 注意这里 int main()
{
        char str;
        scanf("%s", str);
        sort(str);
        printf("%s", str);
}

void sort(char str) // <------- 这里才定义
{
        char temp;
        for (int i = 0; i < N - 1; ++i)
        for (int j = i + 1; j < N; ++j) {
                if (str > str) {
                        temp = str;
                        str = str;
                        str = temp;
                }
        }
}bananaMaryMaaaabnnry
页: [1]
查看完整版本: C5 用起泡法对连续输入的十个字符排序