lutraivae 2023-07-27 19:21 采纳率: 100%
浏览 5
已结题

c语言.冒泡函数怎么调用啊

刚接触c语言感觉有点难,有没有人可以帮帮我sos,留的练习题,有点不会做啊,函数题感觉没问题,没有输出

img

img

  • 写回答

3条回答 默认 最新

  • a5156520 2023-07-27 19:27
    关注

    然后第36行 if (0==i) 改为 if (array[i]==0),即当输入的数为0时,退出while循环;

    第40行 n++改为 i++,即让数组下标变量i指向下一个数组下标位置;

    在while循环与第42行之间插入一行代码,n=i,即将数组元素非零值的个数i赋值给n。

    修改如下:

    
    #include <stdio.h>
    
    void sortArray(int array[], int n){
        
        int i=0,j=0;
        int tmp=0;
        for(j=n-1;j>0;j--){
            for(i=0;i<j;i++){
                if(array[i]>array[i+1]){
                    tmp=array[i];
                    array[i]=array[i+1];
                    array[i+1]=tmp;
                }
            }
        }
        
    
    } 
    
    int main(void){
        int array[32]={0};
        int i=0,n=0;
        while(1){
            
            scanf("%d",&array[i]);
            // 这里由 0==i 改为  0==array[i],即当输入的数为0时,退出while循环 
            if(0==array[i]){ 
                break;
            }
            i++;  // 这里由 n++改为i++, 即让数组下标变量i 指向下一个数组下标 位置 
        }
        n=i;  // 循环结束,n赋值为i,用于记录数组的长度 
        
        sortArray(array,n);
        
        for(i=0;i<n;i++){
            printf("%d ",array[i]);
        }
        
        return 0;
    }
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月4日
  • 已采纳回答 7月27日
  • 创建了问题 7月27日

悬赏问题

  • ¥15 视频编码 十六进制问题
  • ¥15 Xsheii7我安装这个文件的时候跳出来另一个文件已锁定文件的无一部分进程无法访问。这个该怎么解决
  • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
  • ¥15 FileNotFoundError 解决方案
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥30 vs2010开发 WFP(windows filtering platform)
  • ¥15 服务端控制goose报文控制块的发布问题
  • ¥15 学习指导与未来导向啊
  • ¥15 求多普勒频移瞬时表达式