输入4个整数,要求按由大到小的顺序输出。 当然是个很简单的题目了,使我想起了大一学Pascal讲到这一问题时,刚开始也是用的交换法做,记得当时还想了个实例,就是交换法时要用到一个临时空间的问题,就像要交换两个杯子中的水一样,需要一个空杯子,临时存放杯子1中的水,将杯子2水倒入杯子1,再将临时杯中的水倒入杯子2完成交换,所以喜欢用cup做这个变量。再回顾回顾…… #include <stdlib.h>#include <stdio.h>int main(){ int a, b, c, d, cup; printf("Input 4 numbers:\n"); scanf("%d %d %d %d", &a, &b, &c, &d); if (a<b) {cup = a; a = b; b = cup;} if (a<c) {cup = a; a = c; c = cup;} if (a<d) {cup = a; a = d; d = cup;} if (b<c) {cup = b; b = c; c = cup;} if (b<d) {cup = b; b = d; d = cup;} if (c<d) {cup = c; c = d; d = cup;} printf("%d %d %d %d \n", a, b, c, d); system("PAUSE"); //DEV-C++里默认添的东西,有待研究 return 0;} --------------------------------------看来还是要多练啊,开始时scanf中的参数竟然没加 &,还有if复合语句竟然写成了{cup = a, a = b, b = cup}; 语句间分号用了逗号,最后一个语句还没有,复合语句外还加了个分号,无语…… 记得有挺多排序法来着,都快忘的差不多了,"据说"用循环,数组做会更好,看到那的时候再练,待续…… ################################################################################# if 语句中的三个赋值表达式是可以用逗号分开的,即三条赋值语句相当于if语句下的一条逗号表达式语句 逗号表达式:http://blog.programfan.com/article.asp?id=10142 #include <stdio.h>int main(){ int a, b, c, d, cup; printf("Input 4 numbers:\n"); scanf("%d %d %d %d", &a, &b, &c, &d); if (a<b) cup = a, a = b, b = cup; if (a<c) cup = a, a = c, c = cup; if (a<d) cup = a, a = d, d = cup; if (b<c) cup = b, b = c, c = cup; if (b<d) cup = b, b = d, d = cup; if (c<d) cup = c, c = d, d = cup; printf("%d %d %d %d \n", a, b, c, d); return 0;} 这个Blog的编辑器有点问题,修改时原代码会丢失一些东西,特别是本文,修改时要注意!

评论