Forty_8 2023-02-28 09:50 采纳率: 72.7%
浏览 74
已结题

用冒泡排序法从键盘输入10个整数后从小到大排序,程序运行后回车却无法进行排序

问题:想用冒泡排序法从键盘输入10个整数后从小到大排序,程序运行后回车却无法进行排序,想知道这是为什么
代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
   int a[10];
   int i,j,t;
   for(j=1;j<9;j++)
    {scanf("%d",&a[i]);
    for(i=0;i<9-j;i++)
    {
        if(a[i]>a[i+1])
        {
            t=a[i];
            a[i]=a[i+1];
            a[i+1]=t;
        }
    }
    }
  for(i=0;i<10;i++)
    printf("%d ",a[i]);
    return 0;
}


  • 写回答

5条回答 默认 最新

  • Huazie 全栈领域优质创作者 2023-02-28 10:08
    关注
    • 首先 输入数组元素,我建议你,先用一个循环输入,然后再去 进行 冒泡排序
    • 参考如下【如有帮助,欢迎点赞和采纳哈】:
    
    #include<stdio.h>
    
    // 从后往前冒泡
    void sort(int a[],int n)
    {
        int i,j,t,noswap;
        for(i=0;i< n-1; i++)
        {
            noswap=1;
            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;
            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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月28日
  • 已采纳回答 2月28日
  • 创建了问题 2月28日

悬赏问题

  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题