为什么不能运行,感觉调用函数没用

不知道是哪哈出了问题,冒泡排序和选择排序怎么弄啊?不是很明白调用函数以及为定义字符n

img

img

冒泡排序示例参考:


#include<stdio.h>

// 从后往前冒泡
void sort(int a[],int n)
{
    int i,j,t,noswap;
    for(i=0;i< n-1; i++)
    {
        noswap=1; // 是否交换标识 1:没交换 【说明已排序好了】 2:交换了
        for(j=n-1;j>i;j--)
            if(a[j-1]>a[j])
            {
                t=a[j-1];
                a[j-1]=a[j];
                a[j]=t;
                noswap=0;
            }
        if(noswap)    
            break;
    }
}

// 从前往后冒泡
void sort1(int a[],int n)
{
    int i,j,t,noswap;
    for(i=0;i< n-1; i++)
    {
        noswap=1;  // 是否交换标识 1:没交换 【说明已排序好了】 2:交换了
        for(j=0;j<n-1-i;j++)
            if(a[j+1]<a[j])
            {
                t=a[j+1];
                a[j+1]=a[j];
                a[j]=t;
                noswap=0;
            }
        if(noswap)  
            break;
    }
}

int main() 
{
     
    int n;
    printf("Input n:");
    scanf("%d", &n);
     
    printf("Input %d numbers:", n);

    int a[n];
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }

    sort1(a, n);

    printf("Sorting results:");
    for (int i = 0; i < n; i++) 
    {
        printf("%d ", a[i]);
    }
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/740629
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:微信发图时找不到在其他软件上刚保存的图片或视频,但是在手机自带相册里面能看到的解决办法,亲测有效
  • 除此之外, 这篇博客: 逆序输出 之(单词整体顺序不变,单词的每个字母逆序输出)中的 字符串反转 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    题目描述

    小C很喜欢倒着写单词,现在给你一行小C写的文本,你能把每个单词都反转并输出它们吗?

    输入

    输入包含多组测试样例。第一行为一个整数T,代表测试样例的数量,后面跟着T个测试样例。
    每个测试样例占一行,包含多个单词。一行最多有1000个字符。

    输出

    对于每一个测试样例,你应该输出转换后的文本。

    样例输入

    3
    olleh !dlrow
    I ekil .bulcmca
    I evol .mca

    样例输出

    hello world!
    I like acmclub.
    I love acm.

    【思路】:大循环中--当遇到空格或者结束的标志--直接令 k 为此时的(i-1)进行逆序输出----由于这样不会输出空格,则紧跟着逆序输出完成后,进行输出空格。

    【C源程序如下】:

    #include<stdio.h>
    #include<string.h>
    int main() 
    {
        int N,len;
        int i,j,k; 
        char a[1000];
        scanf("%d",&N);
        while(N>=0)
        {
            gets(a);
            len=strlen(a);
            j=0;
            for(i=0;i<=len;i++)
            {
                 if(a[i]==' '||a[i]=='\0')
                 {
                      for(k=i-1;k>=j;k--)//当遇到是空格或者整个字符结束的时候,直接让k等于前一个数,逆序输出
                          printf("%c",a[k]);
                      if(a[i]!='\0')
                            printf(" ");//因为条件是不为空格的情况,所以还要逆序完之后直接输出
                      j=i;//记录遇见空格或者标点符号时,的i
                 }
            }
            printf("\n");
            N--;
        }
        return 0; 
    }

     

  • 您还可以看一下 传智老师的多角度带你编写更规范的黑盒测试用例课程中的 等价类设计测试用例的步骤小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^