c语⾔求abc⼤⼩时要怎么输⼊,C语⾔有3个数a,b,c,要求按⼤⼩
顺序把它们输出。,急!。。。
导航:⽹站⾸页 >
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;}
匿名⽹友:
这个问题可以这样来解释。
c语言的冒泡排序算法在书上给的流程图⾥,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函数...
问题推荐
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论