-
c#输入三个数选出最大的_C语言用if语句比较三个数的大小
2020-12-28 18:25:272020.07.27C语言分享●●●#01#前言C语言--用if语句比较三个数的大小任意输入 3 个整数,编程实现对这输出三个数之中最大最小值。本文分成三部分:1、例子介绍2、具体代码及说明3、运行结果4、讨论区#OVER##02#具体...2020.07.27
C语言分享
●
●
●
#01#前言
C语言--用if语句比较三个数的大小
任意输入 3 个整数,编程实现对这输出三个数之中最大最小值。
本文分成三部分:
1、例子介绍
2、具体代码及说明
3、运行结果
4、讨论区
#OVER#
#02#具体代码及说明
# include
int main ()
{
int a , b , c , max , min ;//定义五个变量
printf ("输入三个数比较大小以空格隔开:\n");//双引号内的普通字符原样输出并换行
scanf ("%d %d %d",&a,&b,&c);/*输入任意3个数*/
if (a>b)/*如果a大于b,则把a赋值给最大值,b赋值给最小值*/
{
max=a;
min =b;
}
else/*否则把b赋值给最大值,a赋值给最小值*/
{
max=b;
min =a;
}
if(max {
max=c;
}
if(min>c)/*如果c小于min,则把c赋值给最大值*/
{
min=c;
}
printf("max=%d,min=%d",max,min);/*输出函数顺序输出max、min的值*/
return 0;
}#OVER#
点击下方图片进入C语言讨论区
●
●
●
视频来源:科学大世界
文字:科学大世界
文章封面图:网络
如有侵权请到公众号内意见反馈处反馈
???
扫码关注我们
觉得不错点个在看呗
2020/07/27
-
C语言比较数字的大小问题
2020-11-24 19:15:22有三个整数a,b,c,由键盘输入,输出其中的最大的数。 一行数组,分别为abc (-10000000<=a,b,c<=10000000) abc其中最大的数 10 20 30 30 题目的编程来自于广东技术师范大学的在线判题系统,简称为OJ系统,...C程序设计(第五版) 课后习题 4.4
第四章 选择结构
空间限制:16MB时间限制:1s总提交数:3713通过率:61.68%题目来源: C程序设计(第五版)-谭浩强
有三个整数a,b,c,由键盘输入,输出其中的最大的数。一行数组,分别为abc (-10000000<=a,b,c<=10000000)
abc其中最大的数
10 20 30
30题目来源 广东技术师范大学在线判题网站http://www.gpnuacm.com/#/home
#include <stdio.h> int main() { long long int t; long long int a, b, c; scanf("%lld %lld %lld", &a, &b, &c); if (a < b) { t = a; a = b; b = t; } if (a < c) { t = a; a = c; c = t; } printf("%d",a); return 0; }
哪里不懂可以在评论区说,我经常在线的哦,不过有时候作业多可能不在线。
-
回归大学C语言数据结构(五)——多种排序算法
2013-08-17 17:42:15排序有多种,里面的算法很巧妙,不写例子... 最直接明了,依次拿出排序码中的每一个,与前面的数比较大小,插入相应的位置。直至所有的数字比较完毕。 int i,j,n; //n为排序码个数 data[n]为整个排序码组 Node temp;排序有多种,里面的算法很巧妙,不写例子,只敲些核心代码。总体的有插入,选择,交换,分配,归并五种。有些没解释的是我感觉很难或者很偏。
一、插入
1.直接插入
最直接明了,依次拿出排序码中的每一个,与前面的数比较大小,插入相应的位置。直至所有的数字比较完毕。
int i,j,n; //n为排序码个数 data[n]为整个排序码组 Node temp; for(i = 1; i < n; ++i){ temp = data[i]; for(j = i-1; temp.value < data[i].value && j >= 0; j--) data[j+1] = data[j];//从取出的数字后面开始往前面取,比该数字大的往前移 if(j != i -1) data[j+1] = temp; //如果循环中取出的数字保持原位不动 则不用更改 }
2.二分法插入
不用依次对比,如果前面的排好序,只需要找到前面排序码组的中间数,数大则在中间的前面,反之即后。
int i,j,n,left,right,middle; //n为排序码个数 data[n]为整个排序码组 Node temp; for(i = 1; i < n; i++){ temp = data[i]; left = 0; right = i-1; while(left <= right){ middle = (left + right )/2; if(temp.value < data[middle].value) right = middle -1; left = middle + 1; } for(j = i-1; j >= left ; j--) data[j+1] = data[j];/ if(left != i -1) data[left] = temp; //将找到的这个位置放进temp }
3.表插入排序。
4.shell排序。
这个是D.L.Shell提出,而他的时间复杂度的东西在《计算机程序设计艺术》有提到,盖茨说过,如果把这一套书读懂,可以直接把简历发给他。
二、选择排序
1、直接排序。
最直接的方法,挑出排序码数组最小的数,放在第一位。再在剩余的数中挑出最小,放在第二位,很是直接,很简单。
2.堆排序。
三、交换排序。
1.冒泡排序。
很经典,像鱼泡一样的东西。
int i,j,n,turn; //n为排序码个数 data[n]为整个排序码组 Node temp; for(i = 1; i < n; ++i){ turn = 1; for(j = 0; j < n -i -1 ; j++){ temp = data[j]; data[j] = data[j+1]; data[j+1] = temp; trun = 0; } if(turn) break;//当已经排好序后,后面无需再比较 }
2.快速排序。
四、分配排序
1.基数排序
五、归并排序
1.内排序
和shell排序很像,但是shell是以一个数字进行跳跃对比,而内排序是一块和一块对比。
2.外排序。
复杂。。。。。。
-
C语言标准教程第一章 C语言概论
2009-05-22 18:21:21max 函数的功能是比较两个数,然后把较大的数返回给主函数。max 函数是一个用户自定义函数。因此在主函数中要给出说明(程序第三行)。可见,在程序的说明部分中,不仅可以有变量说明,还可以有函数说明。关于函数的... -
220个C源代码 初学C语言必备
2011-06-21 21:47:54198 单词个数统计 199 方差运算 200 级数运算 201 输出素数 202 素数题 203 序列排序 204 整数各位数字排序 205 字符串字母移位 206 Fibonacc数列 第七部分 游戏篇 207 商人过河游戏 208 吃数游戏 ... -
c语言经典案例
2014-10-30 08:06:57实例186 用指向函数的指针比较大小 263 实例187 寻找指定元素的指针 265 实例188 字符串的匹配 266 第12章 常用数据结构 269 实例189 比较计数 270 实例190 找出最高分 271 实例191 信息查询 272 实例192 候选人选票... -
C语言五大排序(桶排序,冒泡排序,选择排序,插入排序,快速排序)动态演示
2020-09-09 20:18:43桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种...C语言排序
什么是排序?
排序: 把无序变成有序
1、桶排序
概念
桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是 比较排序,他不受到 O(n log n) 下限的影响。
思路
准备桶的时候,桶的大小是原来排序数组中最大元素的值加一,然后遍历无序的数组,把无序数组中的元素的值当成下标给到桶,每存在一个值,桶中的数量就加一。输出的时候,桶的下标值就是之前需要排序的数组的值,只有桶中的数量大于等于一的时候才表示有数据,再进行输出。
demo
#include <stdio.h> #include <stdlib.h> int main() { //桶排序 //先准备桶 桶的大小是需要排序数组中的最大元素的值加一 int app[10] = { 0 }; //无序的数组 int arr[9]={5,4,8,6,2,0,3,7,9}; // 遍历无序的数组,把无序数组中的元素的值当成下标给到桶 for (int i = 0; i < sizeof(arr) / sizeof(int); i++) { app[arr[i]]++; } 输出,把对应的元素出现了几次进行一个输出 for (int i = 0; i < 10; i++) { for (int j = 1; j <= app[i]; j++) { printf("%d ", i); } } printf("\n"); return 0; }
运行效果:
2、冒泡排序
概念
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
思路
每次进行两两比较,大的或者小的就往后移,每进行一次,最后一个数就是已经排好序的了。
demo
#include <stdio.h> //冒泡排序 void bullerSort(int arr[], int len) { for (int i = 0; i < len - 1; i++)//比较次数 { for (int j = 0; j < len - 1 - i; j++)//比较过程 { if (arr[j]>arr[j + 1])//比较 { //交换 int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } //输出 void print(int arr[], int len) { for (int i = 0; i < len; i++) { printf("%d ", arr[i]); } } int main() { int arr[10]={5,9,11,32,18,54,78,0,87,111}; bullerSort(arr,10); print(arr,10); printf("\n"); return 0; }
运行效果
3、选择排序
动态演示
概念
选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
思路
n个记录的直接选择排序可经过n-1趟直接选择排序得到有序结果。具体算法描述如下:
初始状态:无序区为R[1…n],有序区为空;
第i趟排序(i=1,2,3…n-1)开始时,当前有序区和无序区分别为R[1…i-1]和R(i…n)。该趟排序从当前无序区中-选出关键字最小的记录 R[k],将它与无序区的第1个记录R交换,使R[1…i]和R[i+1…n)分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区;
n-1趟结束,数组有序化了。demo
#include <stdio.h> //选择排序 void selectSort(int arr[], int len) { for (int i = 0; i < len-1; i++) { int min = i;//假设第一个元素是最小的 for (int j = i + 1; j < len; j++) { if (arr[j] < arr[min]) { min = j;//保存最小元素的下标 } } //交换 int temp = arr[min]; arr[min] = arr[i]; arr[i] = temp; } } //输出 void print(int arr[], int len) { for (int i = 0; i < len; i++) { printf("%d ", arr[i]); } } int main() { int arr[15]={3,44,38,5,47,15,36,26,27,2,46,4,19,50,48}; selectSort(arr,15); print(arr,15); printf("\n"); return 0; }
运行结果
4、插入排序
动图演示
概念
插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
思路
一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:
- 从第一个元素开始,该元素可以认为已经被排序;
- 取出下一个元素,在已经排序的元素序列中从后向前扫描;
- 如果该元素(已排序)大于新元素,将该元素移到下一位置;
- 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
- 将新元素插入到该位置后;
- 重复步骤2~5。
demo
#include <stdio.h> //插入排序 void insertSort(int arr[], int len) { int temp;//保存要插入的元素 int j;//从当前要要比较插入的元素的前面一个开始 for (int i = 1; i < len; i++)//第一个元素视为有序,把后面的元素一个一个的插入到前面 { temp = arr[i]; j = i - 1; while (j >= 0&&arr[j]>temp) { arr[j + 1] = arr[j];//前面的元素往后面移动 j--; } arr[j + 1] = temp;//把要插入的元素,插入进对应的位置 } } //输出 void print(int arr[], int len) { for (int i = 0; i < len; i++) { printf("%d ", arr[i]); } } int main() { int arr[15]={3,44,38,5,47,15,36,26,27,2,46,4,19,50,48}; insertSort(arr,15); print(arr,15); printf("\n"); return 0; }
运行效果
5、快速排序
动图演示
概念
快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
思路
快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。具体算法描述如下:
- 从数列中挑出一个元素,称为 “基准”(pivot);
- 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到 任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作;
- 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。
demo
#include <stdio.h> //快速排序 void quickSort(int arr[], int lift, int right) { if (lift > right) return; int i = lift, j = right, temp = arr[i];//获取左右和基准数 while (i < j) { while (temp < arr[j] && i < j) j--; if (i < j) arr[i++] = arr[j]; while (temp>arr[i] && i < j) i++; if (i < j) arr[j--] = arr[i]; } arr[i] = temp; quickSort(arr, lift, i - 1);//左边 quickSort(arr, i + 1, right);//右边 } //输出 void print(int arr[], int len) { for (int i = 0; i < len; i++) { printf("%d ", arr[i]); } } int main() { int arr[15]={3,44,38,5,47,15,36,26,27,2,46,4,19,50,48}; quickSort(arr,0,14); print(arr,15); printf("\n"); return 0; }
运行结果
-
随机抽取两手牌(五张牌)并判断是否是顺子,是顺子的话比较大小
2018-03-19 20:04:41【调试+随机数 + 算法思想】 【任取两手牌】扑克牌2,3,4,...,10,J,Q,K,A 13张牌...3) 【比较大小】判断上述随机抽取的牌是否是个顺子(各牌的大小邻接关系为:2<3<4<...<10&... -
关于C的精粹包含至少200个C语言小程序
2009-01-16 00:42:49198 单词个数统计 199 方差运算 200 级数运算 201 输出素数 202 素数题 203 序列排序 204 整数各位数字排序 205 字符串字母移位 206 Fibonacc数列 第七部分 游戏篇 207 商人过河游戏 208 吃数游戏 ... -
C语言常用算法
2012-03-28 10:48:37198 单词个数统计 199 方差运算 200 级数运算 201 输出素数 202 素数题 203 序列排序 204 整数各位数字排序 205 字符串字母移位 206 Fibonacc数列 第七部分 游戏篇 207 商人过河游戏 208 吃数游戏 ... -
火拼双扣 C语言写
2020-01-12 14:10:16如果星级相同,则按照牌的数量比较大小,数量越少的越大;如过数量相同,则按照牌型中最大牌的点数比较大小。 特殊:天王炸弹是 7 星牌里面最大的牌型,三王炸弹是 6 星牌里面最小的牌型。 由于小明打牌很差劲,... -
(谭浩强)c语言学习书
2008-12-16 10:28:45max 函数的功能是比较两个数,然后把较大的数返回给主函数。max 函数是一个用户自定义函数。因此在主函数中要给出说明(程序第三行)。可见,在程序的说明部分中,不仅可以有变量说明,还可以有函数说明。关于函数的... -
C语言220例从易到难源代码
2018-04-19 13:18:07198 单词个数统计 199 方差运算 200 级数运算 201 输出素数 202 素数题 203 序列排序 204 整数各位数字排序 205 字符串字母移位 206 Fibonacc数列 第七部分 游戏篇 207 商人过河游戏 208 吃数游戏 ... -
C语言实例解析精粹源代码
2009-09-20 03:39:01198 单词个数统计 199 方差运算 200 级数运算 201 输出素数 202 素数题 203 序列排序 204 整数各位数字排序 205 字符串字母移位 206 Fibonacc数列 第七部分 游戏篇 207 商人过河游戏 208 吃数游戏 ... -
C语言实用程序设计100例(段兴)
2012-02-25 10:13:59实例85 判断一个数是否是数组中的成员 246 实例86 数列Fibonacci的求解 248 实例87 求多维数组中每一组的最大值 250 实例88 编写最大公约数函数 252 实例89 随机函数 253 实例90 递归函数的应用 255 实例91 求... -
C语言程序源代码(大集合).rar
2020-03-16 12:16:57198 单词个数统计 199 方差运算 200 级数运算 201 输出素数 202 素数题 203 序列排序 204 整数各位数字排序 205 字符串字母移位 206 Fibonacc数列 第七部分 游戏篇 207 商人过河游戏 208... -
二级C语言公共基础知识
2009-11-20 11:26:03(26) 实现算法所需的存储单元多少和算法的工作量大小分别称为算法的 ______。 答:空间复杂度和时间复杂度 (27) 数据结构包括数据的逻辑结构、数据的 ______以及对数据的*作运算。 答:存储结构 (28) 一个类可以从... -
C语言实例解析精粹(第二版) 电子书及源代码
2011-07-17 20:12:56实例198 单词个数统计 实例199 方差运算 实例200 级数运算 实例201 输出素数 实例202 素数题 实例203 序列排序 实例204 整数各位数字排序 实例205 字符串字母移位 实例206 Fibonacc数列 第七部分 游戏篇 ... -
计算机二级C语言考试题预测
2010-06-08 18:29:34(62) 栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是(D) A. ABCED B. DBCEA C. CDABE D. DCBEA (63) 线性表的顺序存储结构和线性表的链式存储结构分别是(B) A. 顺序... -
C语言常见错误小结,希望对大家有帮助
2009-08-04 18:37:59因此,当grade值为A时,printf函数在执行完第一个语句后接着执行第二、三、四、五个printf函数语句。正确写法应在每个分支后再加上“break;”。例如 case 'A':printf("85~100\n");break; 13.忽视了while和do-while... -
C语言经典源代码实例 数据结构 操作系统 图形等
2008-12-28 09:45:31198 单词个数统计 199 方差运算 200 级数运算 201 输出素数 202 素数题 203 序列排序 204 整数各位数字排序 205 字符串字母移位 206 Fibonacc数列 第七部分 游戏篇 207 商人过河游戏 208 吃数游戏 ... -
C语言通用范例开发金典.part2.rar
2012-08-31 14:18:18范例1-50 双向链表的元素个数 124 ∷相关函数:ListLength函数 1.3.20 判断双向链表是否为空 126 范例1-51 判断双向链表是否为空 126 ∷相关函数:ListEmpty函数 1.3.21 双向链表元素值的查询 129 范例1-52 ... -
shell编程(五)条件判断
2015-10-16 14:32:00这里所说的条件判断是对变量的大小、字符串、文件属性等内容进行判断。 test命令可以用于字符串、数字、文件状态等内容的...指的是比较两个数值的大小或相等关系,相当于c语言中的比较运算符。shell程序中的数值测试 -
21天学通C++ (中文第五版)
2010-06-23 16:57:03本书是针对C++初学者编写的,不要求读者有C语言方面的背景知识,可作为高等院校教授C++课程的教材,也可供初学者自学C++时使用。 译者介绍:Jesse Liberty 编著了大量有关软件开发的图书,其中包括C++和.NET方面的... -
最权威的C++教程_C++_Primer_Plus中文第五版+C++_Primer中文第四版(都含源码+习题)(共4分卷)分卷1
2010-06-23 17:33:55本附录讨论八进制数、十六进制数和二进制数。 附录B:C++保留字 本附录列出了C++关键字。 附录C:ASCII字符集 本附录列出了ASCII字符集及其十进制、八进制、十六进制和二进制表示。 附录D:操作符优先级 本... -
入门学习Linux常用必会60个命令实例详解doc/txt
2011-06-09 00:08:45这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。 ◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; ◆ 文件处理命令... -
最权威的C++教程_C++_Primer_Plus中文第五版+C++_Primer中文第四版(都含源码+习题)(共4分卷)分卷2
2010-06-23 17:47:19本附录讨论八进制数、十六进制数和二进制数。 附录B:C++保留字 本附录列出了C++关键字。 附录C:ASCII字符集 本附录列出了ASCII字符集及其十进制、八进制、十六进制和二进制表示。 附录D:操作符优先级 本... -
最权威的C++教程_C++_Primer_Plus中文第五版+C++_Primer中文第四版(都含源码+习题)(共4分卷)分卷3
2010-06-23 18:03:39本附录讨论八进制数、十六进制数和二进制数。 附录B:C++保留字 本附录列出了C++关键字。 附录C:ASCII字符集 本附录列出了ASCII字符集及其十进制、八进制、十六进制和二进制表示。 附录D:操作符优先级 本... -
python cookbook(第3版)
2016-01-06 22:24:387.8 减少可调用对象的参数个数 7.9 将单方法的类转换为函数 7.10 带额外状态信息的回调函数 7.11 内联回调函数 7.12 访问闭包中定义的变量 第八章:类与对象 8.1 改变对象的字符串显示 8.2 自定义字符串的... -
PAT-A-1149/B-1090的一些问题与建议
2020-12-01 22:34:20所以比较好的建议是,乙级题解尽量(当然也只是尽量啦,有些确实用纯C不太好写的~)多使用纯C,甲级题解可以多使用常用的STL容器,这样可以照顾到不同层次的考生; <p>4...
-
SecureCRT 连接 GNS3/Linux 的安全精密工具
-
Unity 热更新技术-ILRuntime
-
RapidScada从入门到精通
-
PPTP_NNN 服务生产环境实战教程
-
FTP 文件传输服务
-
C++11 14 17 20 多线程从原理到线程池实战
-
Spark在GrowingIO数据无埋点全量采集场景下的实践
-
自动化测试Python3+Selenium3+Unittest
-
Crimeblog:使用gatsby和netlify的博客-源码
-
Docker从入门到精通
-
2021年 系统架构设计师 系列课
-
基于语音声学和反向发音信号融合的说话人验证
-
精准气象和海洋预测笔记二
-
雷达有源干扰识别技术研究现状与发展趋势
-
5.最长回文子串(中心扩散法!!)
-
使用 Linux 平台充当 Router 路由器
-
千万级规模高性能、高并发的网络架构经验分享
-
力扣216. 组合总和 III
-
在 Linux 上构建企业级 DNS 域名解析服务
-
PHP获取URL后缀名