C语言实验——求绝对值(选择结构)(sdut oj)

本文介绍了一种使用C语言实现的求任意整数绝对值的方法。通过两种方式实现:一是使用if...else...语句判断并输出绝对值;二是利用标准库函数abs()直接计算。适合初学者学习C语言的选择结构及函数调用。


C语言实验——求绝对值(选择结构)

Time Limit: 1000MS Memory Limit: 65536KB


Problem Description
从键盘上输入任意一个整数,然后输出它的绝对值!

Input
从键盘上输入任意一个整数。

Output
输出它的绝对值。

Example Input
-4

Example Output
4

Hint
Author



 



参考代码



一、if...else..语句

#include <stdio.h>
int main()
{
    int x;
    scanf("%d",&x);
    if(x>0)
        printf("%d",x);
    else
        printf("%d",-x);
    return 0;
}


二、引用数学函数

#include <stdio.h>
#include<math.h>
int main()
{
    int x;
    scanf("%d",&x);
    x=abs(x);  //取绝对值函数
    printf("%d\n",x);
    return 0;
}



在C语言中,实现绝对值最大值可以通过以下几种方式: ### 方式一:使用`abs()`函数 ```c #include <stdio.h> #include <stdlib.h> int main() { int n, i, a, max = 0; scanf("%d", &n); for (i = 1; i <= n; i++) { scanf("%d", &a); if (abs(max) < abs(a)) max = a; } printf("%d", max); return 0; } ``` 此代码首先定义了变量`n`用于存储输入数字的个数,`i`作为循环计数器,`a`用于临时存储每次输入的数字,`max`用于存储绝对值最大的数并初始化为0。通过`scanf`函数获取输入的数字个数`n`,接着使用`for`循环读取`n`个数字,在每次循环中,使用`abs()`函数计算当前数字`a`和`max`的绝对值并进行比较,如果`a`的绝对值大于`max`的绝对值,则更新`max`为`a`。最后输出`max`的值。这种方式适用于整数的绝对值最大值解,引用了代码逻辑来自引用[1][3]。 ### 方式二:不使用标准库函数 ```c #include <stdio.h> int main() { int n, a, b, m, i; int max = 0; scanf("%d", &n); for (i = 1; i <= n; i++) { scanf("%d", &m); int abs_m = (m < 0) ? -m : m; int abs_max = (max < 0) ? -max : max; if (abs_m > abs_max) { max = m; } } printf("%d", max); return 0; } ``` 此代码不使用标准库的`abs()`函数,而是通过条件运算符`? :`手动计算绝对值。同样先定义变量,获取输入数字的个数`n`,在循环中,将每次输入的数字`m`和当前的`max`分别计算绝对值,然后比较大小,若`m`的绝对值更大,则更新`max`为`m`。最后输出`max`。 ### 方式三:另一种代码实现 ```c #include <stdio.h> int main() { int n, a, b, m, i; scanf("%d\n", &n); int max = 0; for (i = 1; i <= n; i++) { scanf("%d", &m); if (m < 0) a = -m; else b = m; int current_abs = (m < 0) ? a : b; int max_abs = (max < 0) ? -max : max; if (current_abs > max_abs) { max = m; } } printf("%d", max); return 0; } ``` 该代码同样是手动计算绝对值,通过分别处理正数和负数的情况来得到绝对值,然后比较当前输入数字的绝对值和`max`的绝对值,更新`max`的值,最后输出结果,部分逻辑参考了引用[4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值