首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言中带有NAN、INFINITY和-INFINITY的冒泡排序

是一种排序算法,用于对包含NAN(Not a Number)、INFINITY和-INFINITY的数组进行排序。

冒泡排序是一种简单但效率较低的排序算法,它通过多次遍历数组,比较相邻元素的大小并交换位置,将较大(或较小)的元素逐渐“冒泡”到数组的一端。在冒泡排序中,NAN、INFINITY和-INFINITY被视为特殊值,需要特殊处理。

下面是对带有NAN、INFINITY和-INFINITY的数组进行冒泡排序的示例代码:

代码语言:txt
复制
#include <stdio.h>

void bubbleSort(float arr[], int n) {
    int i, j;
    for (i = 0; i < n-1; i++) {
        for (j = 0; j < n-i-1; j++) {
            if (arr[j] > arr[j+1]) {
                float temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}

int main() {
    float arr[] = {1.0, NAN, 5.0, INFINITY, -INFINITY, 3.0};
    int n = sizeof(arr) / sizeof(arr[0]);

    bubbleSort(arr, n);

    printf("Sorted array: ");
    for (int i = 0; i < n; i++) {
        printf("%f ", arr[i]);
    }

    return 0;
}

在上述示例代码中,我们使用了float类型的数组,并通过调用bubbleSort函数对数组进行排序。在比较元素大小时,我们使用了C语言中的比较运算符。由于NAN、INFINITY和-INFINITY是特殊值,它们与其他值的比较结果是不确定的,因此需要特殊处理。

需要注意的是,上述示例代码中没有提及具体的腾讯云产品和产品介绍链接地址,因为冒泡排序算法与云计算领域的产品关系不大,无法直接给出相关推荐。如果您有其他与云计算相关的问题,我将非常乐意为您提供帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C语言中的nan和inf使用

本文总结nan和inf在C语言当中的含义、产生和判定方法。...得到nan时就查看是否有非法操作; 如果表达式中含有nan,那么表达式的结果为nan; 对于NaN的实现有两种方式:signaling NaN 和 quiet NaN。...quiet NaN就是即使在计算出现异常的情况下也不抛出异常从而中断程序的执行、而是将结果表示为一个特殊的值, 因此只有在这种情况下NaN宏才被定义; C语言当中的inf infinity (linux...注意: +inf大于任何数(除了它自己和nan);-inf小于任何数(除了它自己和nan); 得到inf时就查看是否有溢出或者除以0; 头文件中,有定义的常量DBL_MAX,这个常量表示...参考资料: C语言 inf和nan(http://blog.sina.com.cn/s/blog_8b745a5f01014ifk.html) 20.5.2 Infinity and NaN(http

3.4K30
  • 学习了这么些年,请问编程中除以 0 一定抛异常吗?

    然而,情况在浮点数运算中截然不同,尤其是在 Java 等编程语言中,浮点数除以零并不会抛出异常,而是返回特殊的值——Infinity 或 NaN。...计算机科学与数值运算在计算机科学中,数字的表示和运算是由计算机硬件和编程语言的实现所决定的。数值计算不仅仅是简单的加法和乘法,还包括了如何处理特殊情况,比如除以零、无穷大和非数值(NaN)。...整数类型:如 int 和 long,用于表示整数值。这些类型不支持表示无穷大或非数值,因此,除以零时会抛出异常。浮点类型:如 float 和 double,用于表示带有小数部分的数值。...根据该标准,浮点数在进行除法运算时,尤其是在除数为零时,不会抛出异常,而是返回 Infinity 或 NaN。这是为了增强程序的容错性和稳定性。...浮点数与整数的区别4.1 浮点数:容忍不确定性在浮点数的计算中,Infinity 和 NaN 是标准的一部分,它们代表着计算结果中不可确定或无法定义的部分。

    26830

    JavaScript面向对象编程指南 第一、二章知识点整理

    类:在面向对象编程中,类(class)是对象(object)的模板,定义了同一组对象(又称 "实例")共有的属性和方法 JavaScript与C++或Java这种传统的面向对象语言不同,他实际上压根儿就没有类...在传统的面向对象语言中,我们一般会这样描述:"我基于Person类创建了一个叫做Bob的新对象"。...任何不属于基本类型的东西都属于对象。 2.1.2 数字类型可以储存的数据包括:正负整数、浮点数、十六进制与八进制数、指数以及特殊数值NaN、Infinity、 -Infinity。...2.3.2 Infinity Infinity表示的是最大的数,-Infinity表示的是最小的数,任何数除以0结果也为Infinity,不包括0,0除以0得到的是NaN。...正负Infinity做算术运算得到的是NaN,Infinity与其他任何操作数(即数字类型里除了NaN和正负Infinity)执行任何算数运算的结果也都等于Infinity。

    40150

    原 NaN和Infinity,null和u

    1、NaN和Infinity 那先来说说JavaScript的数据类型,有Number、字符串、布尔值、对象等等,而NaN和Infinity就属于Number类型。...先说说它俩的差别: NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示 Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number...所能表示的最大值时,就表示为Infinity 举个栗子: 2 / 0; // Infinity 0 / 0; // NaN 并且NaN有个特例,我们都知道相等运算符有两种:== 和 ===。...但NaN却和所有的值都不相等,包括它自己: NaN===NaN;  //false; 唯一能判断NaN的方法是通过IsNaN()函数: isNaN(NaN); // true 2、null和undefined...在其他语言中,也有类似JavaScript的null的表示,例如Java也用null,Swift用nil,Python用None表示。 (1)null表示"没有对象",即该处不应该有值。

    1K60

    NaN和Infinity,null和undefined

    1、NaN和Infinity 那先来说说JavaScript的数据类型,有Number、字符串、布尔值、对象等等,而NaN和Infinity就属于Number类型。...先说说它俩的差别: NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示 Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number...所能表示的最大值时,就表示为Infinity 举个栗子: 2 / 0; // Infinity 0 / 0; // NaN 并且NaN有个特例,我们都知道相等运算符有两种:== 和 ===。...但NaN却和所有的值都不相等,包括它自己: NaN===NaN; //false; 唯一能判断NaN的方法是通过IsNaN()函数: isNaN(NaN); // true 2、null和undefined...在其他语言中,也有类似JavaScript的null的表示,例如Java也用null,Swift用nil,Python用None表示。 (1)null表示"没有对象",即该处不应该有值。

    1.2K30

    关系运算符

    通过对x和y表达式求值而产生的值必须是数字、日期、日期时间、日期时区、持续时间、逻辑值、空值或时间值。否则,"Expression.Error"会引发带有原因代码的错误。...当两个操作数都不是 时#nan,运算符根据排序比较两个浮点操作数的值,-∞ 和 +∞ 的 M 名称是-#infinity和#infinity。 这种排序的显着影响是: 负零和正零被认为是相等的。...条件逻辑运算符是在类型logical和上定义的null。如果操作数值不是这些类型,"Expression.Error"则会引发带有原因代码的错误。 结果是一个逻辑值。...添加持续时间和某种类型的datetime值时,结果值具有相同的类型。 对于表中所列值以外的其他值组合,将"Expression.Error"引发带有原因代码的错误。以下各节介绍了每种组合。

    1K40

    JavaScript-算数运算符

    上面代码中,由于从左到右的运算次序,字符串的位置不同会导致不同的结果。 除了加法运算符,其他算术运算符(比如减法、除法和乘法)都不会发生重载。...他们的规则是 所有运算子一律转为数值,再进行相应的数学运算。 ? 上面代码中,减法、除法和乘法运算符,都是将字符串自动转为数值,然后再运算。...(3)Infinity 被 Infinity 除,结果为 NaN。 ? (4)Infinity 被任何数字除,结果为 Infinity。 ? (5)0 除一个任何非无穷大的数字,结果为 NaN。 ?...7.1 语法 运算符: var1 ** var2 7.2 注解 (1)包括 PHP 或 Python 等的大多数语言中,都包含幂运算符(一般来说符号是 ^ 或者 **)。...这些语言中的幂运算符有着比其他的单目运算符(如一元 + 或一元 - )更高的优先级。但是作为例外,在 Bash 中,** 运算符被设计为比单目运算符优先级更低。

    1.2K40

    JavaScript(三)

    自增和自减操作符 借鉴于 C 语言。有两个版本: 前置以及后置。...如果乘积超过了 ECMAScript 数值的表示范围,则返回 Infinity 或 -Infinity 如果有一个操作数是 NaN,则结果是 NaN 如果是 Infinity 与 0 相乘,则结果是 NaN...NaN 如果是零被零除,则结果是 NaN 如果是非零的有限数被零除,则结果是 Infinity 或 -Infinity,取决于有符号操作数的符号 如果是 Infinity 被任何非零数值除,则结果是...,则在后台调用 Number() 将其转换为数值,然后再应用上面的规则 加性操作符 加法和减法这两个加性操作符应该说是编程语言中最简单的算术操作符了。...因此,位于 return 语句之后的任何代码都永远不会执行。另外,return 语句也可以不带有任何返回值。在这种情况下,函数在停止执行后将返回 undefined 值。

    48620

    JavaScript数值

    Infinity :Infinity (或 -Infinity)是 JavaScript 在计算数时超出最大可能数范围时返回的值。 除以 0(零)也会生成 Infinity。...Infinity 是数:typeOf Infinity 返回 number。 十六进制 :JavaScript 会把前缀为 0x 的数值常量解释为十六进制。...【注】一些 JavaScript 版本会把带有前导零的数解释为八进制。 对象 :数值可以是对象,但最好不要把数值创建为对象,它会拖慢执行速度。...当使用 === 运算符时,相等数值是不相等的,因为 === 运算符需要类型和值同时相等。 更糟的是两个对象是无法比较的。 2....MIN_VALUE 返回 JavaScript 中可能的最小数。 NEGATIVE_INFINITY 表示负的无穷大(溢出返回)。 NaN 表示非数字值(“Not-a-Number”)。

    95920
    领券