IcarusCPU 2023-04-13 13:21 采纳率: 71.4%
浏览 41
已结题

关于C语言冒泡排序,结果不正确,怀疑是数组输入的问题,求原因!


#include "stdio.h"
#include "stdlib.h"
#define N 100
int main() 
{
    int a;
    scanf("%d",&a);

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

    for (i = 1; i <= a - 1; i++)
        for (j = i + 1; j <= a - 1; j++)
            if (n[j] > n[j + 1])
            {
                temp = n[j];
                n[j] = n[j + 1];
                n[j + 1] = temp;
            }
    
    for (i = 0; i < 10; i++)
    printf("%-4d", n[i]);

    return 0;
}

img

  • 写回答

5条回答 默认 最新

  • IcarusCPU 2023-04-13 18:22
    关注

    educoder第一关:相邻两数找最大

    
    #include <stdio.h>
    #include<stdlib.h>
    #define N 100
     
    int main ()
    { 
        /********** Begin **********/ 
        int a[N],n,i,j,t=0,flag;
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
            scanf("%d ",&a[i]);
        }
        for(i=0;i<n-1;i++)
        {
            flag=0;
            for(j=0;j<n-i-1;j++)
                if(a[i]>a[i+1])
                {
                    t=a[i];
                    a[i]=a[i+1];
                    a[i+1]=t;
                    flag=1;
                }
                else if(a[i]<a[i+1])
                {
                    a[i]=a[i];
                    a[i+1]=a[i+1];
                }
     
        }
        if(flag==1)
        {
            for(j=0;j<n;j++)
            printf("%d ",a[j]);
        }
        if(flag==0)
        {
            for(j=0;j<n-1;j++)
            printf("%d ",a[j-1]);
            printf("%d",a[j+1]);
        }
        /********** End **********/
        return 0;
    }
     
    

    第二关:冒泡排序

    
    #include <stdio.h>
    #include<stdlib.h>
    #define N 100
    int main ()
    {
        /********** Begin **********/ 
        int a[N],n,i,j,k,t=0;
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
            scanf("%d ",&a[i]);
        }
        for(i=0;i<n-1;i++)
        {
            for(j=0;j<n-1-i;j++)
            {
                if(a[j]>a[j+1])
                {
                    t=a[j];
                    a[j]=a[j+1];
                    a[j+1]=t;
                }
                
            }
            for(k=0;k<n;k++)
                printf("%d ",a[k]);
            printf("\n");
            
        }   
        
     
     
        /********** End **********/    
        return 0;
    }
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月21日
  • 已采纳回答 4月13日
  • 创建了问题 4月13日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀