导航:网站首页 >
C语言 有3个数a,b,c,要求按大小顺序把它们输出。,急!!!!!有三个数abc,要求按大小顺序输出. 请问用C语
C语言 有3个数a,b,c,要求按大小顺序把它们输出。,急!!!!!有三个数abc,要求按大小顺序输出. 请问用C语言怎么写...
匿名网友:
下面介绍两种解题方法1.用if else语句求解:#includeint main(){int a,b,c,x;scanf("%d %d %d",&a,&b,&c);if(a>b){x=a;a=b;b=x;}if(a>c){x=a;a=c;c=x;}if(b>c){x=b;b=c;c=x;}printf("%d %d %d\n",a,b,c);return 0;}2.用数组求解:#includeint main(){int a,b,c,t;printf"请输入三个整数:\n";scanf("%d\t%d\t%d", &a, &b, &c);if (a >b){t = a;a = b;b = t;}if (a >c){t = a;a = c;c = t;}if (b >c){t = b;b = c;c = t;} printf"这三个数中最大的数是:%d\n", c;printf"将这三个数按从大到小的顺序排列为:%d\t%d\t%d\n", c, b, a;return 0;}扩展资料上述过程中我们用到了数组的知识,数组使用需要注意的是:1 数组中每个元素的数据类型必须相同,对于int a4;,每个元素都必须为 int。
2 数组长度 length 最好是整数或者常量表达式,3 访问数组元素时,下标的取值范围为 0 ≤ index 4 数组是一个整体,它的内存是连续的。
匿名网友:
# include void main(){int a,b,c;scanf("%d,%d,%d",&a,&b,&c);if(a>b){ if(b>c)printf("%d,%d,%d",a,b,c);else if(a>c)printf("%d,%d,%d",a,c,b) ;elseprintf("%d,%d,%d",c,a,b);}else if(a>c)printf("%d,%d,%d",b,a,c);else if(b>c)printf("%d,%d,%d",b,c,a);else printf("%d,%d,%d",c,b,a)}可能算法不是很好,不过我暂时就这样吧!
匿名网友:
冒泡排序多少个都能排,这个是由小到大排# include # include //输入数组void input(float * pArr, int len){int i = 0;for (i=0; i{printf"请输入第%d个数: ", i+1;scanf("%f", &pArri);}return;}//排序 冒泡法void sort (float * a, int len){int i, j, t;for (i=0; i{for (j=0; j{if (aj>aj+1){t = aj;aj = aj+1;aj+1 = t;}}} return;}int main (void){float *p;int m,len, i;char ch;do{printf"请输入您要排序数字的个数: ";scanf("%d", &len);p = (float *)malloc(len*sizeof(float);//动态内存放p数组input(p, len);sort(p, len);for (m=0; mprintf("%f ", pm);printf("\n");free(p);printf"请问是否继续?Y/N ";scanf(" %c", &ch);}while ('Y' == ch || 'y' == ch);return 0;}
匿名网友:
//简单的方法就是对三个数按大小排序。
先将最小的数放到首位,如果发现有大小顺序不对的,就将它们交换位置。
#includeint main(){int a,b,c,t;printf"请输入三个整数:";scanf("%d%d%d",&a,&b,&c);if(a>b){t=a; a=b; b=t;} //a与b若大小顺序不对,就交换位置if(a>c){t=a; a=c; c=t;} //a与c若大小顺序不对,就交换位置;到此a肯定是最小if(b>c){t=b; b=c; c=t;} //b与c若大小顺序不对,就交换位置;到此c肯定是最大printf"这三个数从小到大排列是:%d %d %d\n",a,b,c;getch();return 0;}
匿名网友:
这个问题可以这样来解释。
在书上给的流程图里,a与b互换指的不是位置互换,而是存储a与b的位置将它们所存储的值进行互换,结果a跟b都被重新赋了值,所以在最后看似有3种输出结果,实际上有6种。
相反在你的流程图里没有给a b c重新赋值,所以逻辑上你最后应该有6种输出结果,但图中只有5种,所以你的这个图应该存在问题。
匿名网友:
排序算法没错,不过"return a, b, c;"什么鬼,c函数什么时候可以返回多个值了?#include void sort(int *a,int *b,int *c){ int t;if (*a >*b)t=*a,*a=*b,*b=t;if (*b >*c){t=*b,*b=*c,*c=t;if(*a >*b)t=*a,*a=*b,*b=t;}}int main(){int a, b, c;printf("give me three integers (seperated by blanks): \n");scanf("%d", &a);scanf("%d", &b);scanf("%d", &c);sort(&a, &b, &c);printf("in ascending order: %d %d %d\n", a, b, c);return 0; }
匿名网友:
先令一个中间值 t ;然后依次比较a,b,c ;具体过程是这样先比较a和b的值,如果a大于b,,则利用t把a和b进行交换;然后比较a和c的值,如果a大于c,则利用t把a和c的值进行交换;最后比较b和c的值,如果b大于c,则利用t把b和c的值进行交换; 接着就可以按照从小到大的顺序依次输出啊a,b,c了程序如下#includevoid main(){int a,b,c,t;printf"请依次输入a,b,c:";scanf("%d%d%d",&a,&b,&c);if(a>b) {t=a;a=b;b=t;}if(a>c) {t=a;a=c;c=t;}if(b>c) {t=b;b=c;c=t;}printf"按从小到大的顺序输出a=%d,b=%d,c=%d\n",a,b,c;}
匿名网友:
可以帮你写程序,但是写流程图这太难了。
。
。
#includevoid main(){int a,b,c,t;printf"请依次输入a,b,c:";scanf("%d%d%d",&a,&b,&c);if(a>b) {t=a;a=b;b=t;}if(a>c) {t=a;a=c;c=t;}if(b>c) {t=b;b=c;c=t;}printf"按从小到大的顺序输出a=%d,b=%d,c=%d\n",a,b,c;}
匿名网友:
一、实现思路,用伪代码写出解此题的算法: 1、if a>b 将a和b对换 a是a,b中的小者。
2、if a>c 将a和c对换 a是a,c中的小者,因此a是三者中最小者。
3、if b>c 将b和c对换 b是b,c中的小者,也是三者中次小者。
二、实现代码如下: 三、执行结果如下: 3者比较就是两两比较综合处理,两两比较实现互换要通过中间变量t,即如果a>b,按从小到大排列则把a放在t中,然后把b放在a中,最后再把a取出放在b中,用C语言说就是赋职号=.按大小顺序排列只须把a>b,a>c,b>c改为a 四、传统流程图如下: 扩展资料 函数 IF 的参数包含数组 用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。
数组区域共用一个公式;数组常量是用作参数的一组常量,则在执行 IF 语句时,数组中的每一个元素都将计算。
#include void main() { int a,b,c,t; printf"请依次输入a,b,c:"; scanf("%d%d%d",&a,&b,&c); if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(b>c) {t=b;b=c;c=t;} printf"按从小到大的顺序输出a=%d,b=%d,c=%d\n",a,b,c; } 参考资料:百度百科 IF函数...
问题推荐