qq_43716273 2018-11-16 09:52 采纳率: 0%
浏览 493

C语言中关于变量的使用

void sort(int array[],int n)

{ int i,j,t;

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

{ if(array[i]<array[j])

t=array[i];array[i]=array[j];array[j]=t; } }

用k的好处是什么?

  • 写回答

2条回答 默认 最新

  • threenewbee 2018-11-16 11:28
    关注

    你没有一个叫做k的变量
    只有i j是循环变量,t是作为交换的中间变量。

    另外,你的排序算法非但谈不到好处,而且根本不对。
    我测试了下

    #include <stdio.h>
    
    void sort(int array[],int n)
    
    { int i,j,t;
    
    for(i=0;i<n-1;i++)
    
    for(j=i+1;j<n;j++)
    
    { if(array[i]<array[j])
    
    t=array[i];array[i]=array[j];array[j]=t; } }
    
    int main () {
        int arr[6] = { 3, 7, 2, 9, 4, 8 };
        sort(arr, 6);
        int i;
        for (i = 0; i < 6; i++) printf("%d ", arr[i]);
        return 0;
    }
    

    输出
    8 4 2 2 2 2

    显然不对

    之所以不对,表面原因是if下面交换的花括号忘记写了,深层次原因是你写程序良好的习惯没有培养起来,缺少缩进和正确的换行。

    修改为
    {t=array[i];array[i]=array[j];array[j]=t;} } }

    则输出结果
    9 8 7 4 3 2

    评论

报告相同问题?

悬赏问题

  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))