C语言算法小实例5
C語言算法小實例5
1. 給定兩個數字,交換兩個數字的值(要求兩種方法)
2. 給定3個數字,對三個數字進行排序。
思路分析:
1.交換兩個數的數值,既可以借助中間變量來完成,也可以通過三個賦值表達式來完成交換數值,即a = a + b; b = a - b; a = a - b;這三個式子。
2.對于幾個數的排序問題,都可以將數值儲存到一個一維數組中,通過比較交換排序法來實現。
正確代碼:
1.(1):
#include<stdio.h> int main(void) {printf("請輸入兩個數:\n");int a, b, t;while(scanf("%d%d", &a, &b)!=EOF){t = a; a = b;b = t;printf("%d %d\n", a, b);}return 0;}1.(2):
#include<stdio.h> int main(void) {printf("請輸入兩個數:\n");int a, b;while(scanf("%d%d", &a, &b)!=EOF){a = a + b;b = a - b;a = a - b;printf("%d %d\n", a, b);}return 0;}2.(1):
#include<stdio.h> int main(void) {printf("請輸入三個數:\n");int i, j, t, str[3];for(i = 0; i < 3; i++){scanf("%d", &str[i]);}for(i = 0; i < 3; i++){for(j = 0; j < 3; j++){if(str[i] < str[j]){t = str[i];str[i] = str[j];str[j] = t;}}}printf("三個數由小到大排列為:\n");for(i = 0; i < 3; i++){printf("%d ", str[i]); }return 0;}運行結果:
1.(1):
1.(2):
2.(1):
總結:
1.對于一個題目,方法不止一個,可以從不同角度、用不同方法來解題,不要局限自己的思維,盡可能的多想、多練。
2、對于排序,有一個經典程序段,可以進行熟練記憶。
升序:
降序:
for(i = 0; i < n - 1; i++) {for(j = i + 1; j < n; j++){if(str[i] < str[j]){int t; t = str[i];str[i] = str[j];str[j] = t;}} }總結
- 上一篇: c语言中 %d与%2d与%02d的区别在
- 下一篇: 100本书的100句话,句句直刺心底!