C语言从入门到懵逼(三)

while循环

1
2
3
while(condition) {
// do something
}
1
2
3
do {
// do something
} while(condition)
  • 当型和直到型的区别

  • 常见套路

    • T组用例
    1
    2
    3
    4
    5
    int T;
    scanf("%d", &T);
    while(T--) {
    // do something
    }
    • 文件结束
    1
    2
    3
    4
    5
    6
    7
    8
    int n;
    while(~scanf("%d", &n)) {
    // do something
    }
    while(scanf("%d", &n) != EOF) { // EOF == End Of File
    // do something
    }
    • 某些用if判定终止的循环
    1
    2
    3
    4
    5
    while(true) {
    if(condition) break;
    // do something
    }
  • 自加与循环结合——变量终止时的值 (i == 5)

1
2
int i = 0;
while(i++ < 4) ;

冒泡排序

  • 演示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int main() {
int a[10];
for(int i = 0; i < 10; i++) scanf("%d", &a[i]);
for(int i = 0; i < 10; i++) {
for(int j = 0; j < 10 - i; j++) {
if(a[j] > a[j + 1]) {
int tmp = a[j + 1];
a[j + 1] = a[j];
a[j] = tmp;
}
}
}
}
  • 思考:交换两个元素 不借助第三方变量
1
2
3
4
int x, y;
x += y;
y = x - y;
x -= y;

anything else?

本博客收到的所有打赏均将用于博主女朋友的化妆品购买及养胖计划