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

PTA题解 --- 比较大小(C语言)

今天是PTA题库解法讲解的第三天,今天我们要讲解比较大小,题目如下: 要解决这个问题,你可以采取以下步骤来编写C语言程序: 读取三个整数。 使用简单的比较和交换操作来排序这些数。...以下是C语言实现: #include ​ int main() {    int a, b, c, temp;    scanf("%d %d %d", &a, &b, &c);...       // 确保a是最小的    if (a > b) { temp = a; a = b; b = temp; }    if (a > c) { temp = a; a = c;...c = temp; }    // 现在a已经是最小的了,只需比较b和c    if (b > c) { temp = b; b = c; c = temp; } ​    printf("%d-...>%d->%d\n", a, b, c);    return 0; } 这段代码首先通过三个if语句将最小的数交换到变量a,然后将第二小的数交换到变量b,保证了c是最大的数。

21610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    c语言中字符串比较的库函数是什么_c语言比较字符串大小

    说起比较运算,肯定第一时间想到了C语言中关于比较的相关运算符 “>、=、比较两个字符串是否相等是不是直接用“==”比较就行了。下面就来看看这种方法行不行?...这就要说下一字符串在C语言中比较特殊的一点,在C语言中处理一般的变量如整形、字符型、浮点型时,直接操作的是变量的值,比如 int a,b; a=b;在执行这行代码的时候,是将b的值拷贝一份然后复制给a。...比较运算符“==”在使用的时候,也直接比较的是变量的值。而C语言在使用字符串的时候,是通过地址引用而不是值引用来操作的。...strcmp函数实际上是对字符的ASCII码进行比较,实现原理如下:首先比较两个串的第一个字符,若不相等,则停止比较并得出两个ASCII码大小比较的结果;如果相等就接着 比较第二个字符然后第三个字符等等...这个函数其实就是相当于把上面例程中对字符串每个字符独立比较方法的一个封装,内部函数实现方式类似于下面这样。 由于字符串在C语言中的处理比较特殊,所以C语言提供了一个专门操作字符串的库。

    2K30

    C语言函数的调用——比较两个数的大小

    目录 一、先写好框架 二、然后定义我们需要的变量 三、这里就要写函数的部分 四、函数部分写完了,但是还一个地方,要值得注意  一、常规方法比较大小 二、指针操作比较大小 今天我们要写的是用调用函数的方法来...比较两个数字的大小 我们先看看程序的运行效果 一、先写好框架 #include void main() { } 二、然后定义我们需要的变量 int i,j;//只有两个参数 scanf("%d,...型表示我们最终要返回一个整形的数字 //括号里的两个表示形参,即我们要把我们在主函数中输入的两个数字放进去,然后再执行函数里面的语句 int max(int i, int j) { if(i>j)//很明显的比大小了...四、函数部分写完了,但是还一个地方,要值得注意         当我们写了函数之后,要在主函数之前声明一遍, 这里就是告诉程序,我在下面的主函数中要用到我定义的这个函数   声明如下 一、常规方法比较大小...在这里调用我们写的函数,并且把我们输入的两个参数放进函数中 } int max(int i, int j) { if(i>j) return i; else return j; } 二、指针操作比较大小

    3K20

    C语言中的强符号和弱符号

    链接的核心是符号的重定位,在符号引用的地方找到符号定义的地方,包括函数产生的符号和全局变量产生的符号。 强符号:函数和初始化的全局变量所生成的符号。 弱符号:未初始化的全局变量所生成的符号。...//a.c int gdata = 10; //b.c int gdata = 20; #include int main(){ printf("gdata = %d\n",gdata...); return 0; } 这是很多新手容易犯的错误,若将a.c或b.c中全局变量gdata只初始化一次,则不会出现链接错误,并且会链接成功。...一个有趣的小例子再看强弱符号: //a.c int x; void func(){ x = 20; } //b.c #include short x = 10; short y...源文件是独立进行编译的 //a.c int x;//弱符号 void func(){ x = 20; //往x的内存上写20,写4个字节 编译阶段就完成的 } //b.c #include<

    1.6K20

    C++导出C语言符号踩坑(一)

    前言理论上,对 C++ 工程进行 C 语言接口封装时,只需要在 C 头文件中声明混合编程即可,这样就可以避免 C++ 语言特殊的名称修饰行为。但是今天遇到了一个特例,所以想记录一下。...正文直接说问题和现象,现在有一个 C++ 的方法 my_function,现在要将其导出为 C 语言接口的,头文件应该这样封装:#ifndef MYLIB_H#define MYLIB_H#ifdef...__cplusplus 和 extern "C" 的目的是为了防止 C++ 的名称修饰,确保导出的符号是 C 语言风格的符号,而不是经过 C++ 编译器修饰后的符号。...,就是定义多个方法时,有些方法符号是按照 C 语言规则导出的,有些则是 C++ 语言名称修饰后导出的。...后来,实践后发现,编译确实会根据方法参数的复杂度来决定是否使用 C++ 名称修饰,如果想强制使用 C 语言风格的导出符号,不仅需要在头文件中声明 #ifdef __cplusplus 和 extern

    5710

    C语言符号-取余取模运算

    printf("%d\n", i); //结果是:-2 printf("%d\n", j); //结果是:2 return 0; } 注:运行结果并不是像我们想的四舍五入数学取整,在C语言中本质是向...return 0; } 对于负数取模 示例: int main() { int a = -10; int d = 3; printf("%d\n", a/d); //C语言中是...-3,python是-4 printf("%d\n", a%d);//C语言中是-1,python是2 return 0; } 为什么就有差异了呢?...r的大小,本质是取决于商q的,而取商取决于取证规则 由此对于负数“取模”结果的不同,我们分别称之为正余数和负余数 取余和取模的理解 ---- 取余:尽可能让商,进行向0取整 取模:尽可能让商...,对其进行0向取整和-∞取整,取整方向是相反的,故取模不等价于取余 结论: 两个同符号数据参与取余,取模等价于取余,不同语言余数相等 两个不符号数据参与取余,取模不等价于取余,余数大小需考虑语言取整规则

    3.2K40
    领券