c - c语言冒泡排序

标签 c sorting

我正在使用以下代码进行选择排序,但它总是返回 0, 0, 0,....

#include<stdio.h>


main(){

  int i,j;
  int s=8;
float  temp;
float  a[8] = {99, 80.5, 66, 45, 02, 36, 45, 80};


  for(i=0;i<s;i++){
      for(j=i+1;j<s;j++){
           if(a[i]>a[j]){
               temp=a[i];
              a[i]=a[j];
              a[j]=temp;
           }
      }
  }

  printf("After sorting is: ");
  for(i=0;i<s;i++)
      printf(" %d",a[i]);

  return 0;
}

它适用于 int 变量但不适用于 float。怎么了?

最佳答案

排序(我猜它是某种冒泡排序算法)看起来不错。但是输出是错误的,您必须使用 %f 浮点值说明符而不是 %d(用于整数)。

 for(i=0;i<s;i++)
        printf(" %f",a[i]);

关于c - c语言冒泡排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14053525/

相关文章:

c - 无论我运行什么代码,意外标记 `(' 附近的语法错误

c - 字计数器代码跳过

javascript - 按第 5 个字段对多维数组进行排序

c - 将 C 语言与 TI EZ430-RF2500 开发芯片结合使用

c - 如何卸载不间断(浮点异常时继续)模式?

C - 从文件中逐行读取 - 显示错误的输出

java - 让 Java 在字母之后对符号进行排序(就像 Linux 排序一样)

c# - 使用 CSV 文件

mysql - 当 "last name"中有句​​点时,在 MySQL 中按 "full name"排序

c++ - 如何 std::sort 一个 3 维 vector