Wangx_wang 2023-12-01 11:41 采纳率: 85.7%
浏览 7
已结题

关于#c语言#的问题:这个程序有时候运行的结果是对的有时候又是错的,不明白错在哪个位置了(相关搜索:冒泡排序)

题目如图

img


我的代码如下


#define N 29


int main()
{
    long long int a[N];
    void input(long long int b[], int n);
    void output(long long int c[], int n);
    void sort(long long int d[], int n);

    input(a, N);
    sort(a, N);
    output(a, N);

    return 0;
}

void input(long long int b[], int n)
{
    int i = 0;
    for (i = 0; i < N; i++)
    {
        scanf("%lld", &b[i]);
    }

}

void output(long long int c[], int n)
{
    int i = 0;
    for (i = 0; i < N; i++)
    {
        printf("%20lld", c[i]);
    }
}


void sort(long long int d[], int n)
{
    
    int i = 0;
    int j = 0;
    for(j=0;j<N;j++)
{
    for (i = 0; i < N - i; i++)
    {
        if (d[i] > d[i + 1])
        {
            d[i] ^= d[i + 1];
            d[i + 1] ^= d[i];
            d[i] ^= d[i + 1];
        }
    }

    }


}

求解答,这个程序有时候运行的结果是对的有时候又是错的,不明白错在哪个位置了

  • 写回答

2条回答 默认 最新

  • 赵4老师 2023-12-01 14:39
    关注
    
    #include <stdio.h>
    #define N 29
    void input(long long int b[], int n) {
        int i = 0;
        for (i = 0; i < N; i++) scanf("%lld", &b[i]);
    }
    void output(long long int c[], int n) {
        int i = 0;
        for (i = 0; i < N; i++) printf("%20lld\n", c[i]);
    }
    void sort(long long int d[], int n) {
        int i = 0;
        int j = 0;
        long long int t;
    
        for (i = 0; i < N - 1; i++) {
            for (j = i+1; j < N; j++) {
                if (d[i] > d[j]) {
                    t=d[i]; d[i]= d[j]; d[j] = t;
                }
            }
        }
    }
    
    int main() {
        long long int a[N];
    
        input(a, N);
        sort(a, N);
        output(a, N);
    
        return 0;
    }
    //输入
    //26315284941555 240952712726615 219653273613088 49854728304 118682425825689 59230312605 -24791177982812048 279332675421447 270201770713466 2979070496299 54011229920280 116241556631820 163642750518408 -2460617401290999 1821449677408 117492642419630 766173584083 21907166318800 18827294410759 88441056911060 -1243127431208483 283262503616426 228292059328043 270821419831267 15202635829459 149041756620017 154542956324184 -10924233532584888 86712385024858
    //输出
    //  -24791177982812048
    //  -10924233532584888
    //   -2460617401290999
    //   -1243127431208483
    //         49854728304
    //         59230312605
    //        766173584083
    //       1821449677408
    //       2979070496299
    //      15202635829459
    //      18827294410759
    //      21907166318800
    //      26315284941555
    //      54011229920280
    //      86712385024858
    //      88441056911060
    //     116241556631820
    //     117492642419630
    //     118682425825689
    //     149041756620017
    //     154542956324184
    //     163642750518408
    //     219653273613088
    //     228292059328043
    //     240952712726615
    //     270201770713466
    //     270821419831267
    //     279332675421447
    //     283262503616426
    //
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月9日
  • 已采纳回答 12月1日
  • 创建了问题 12月1日