1 while 循環
#include <stdio.h>
int main(void)
{
long num;
long sum = 0L; /* 把 sum 初始化爲 0 */
int status;
printf("Please enter a integer to be summed ");
printf("(q to quit): ");
status = scanf("%ld", &num);
while (status == 1)
{
sum = sum + num;
printf("Current sum is %d.\n", sum);
printf("Please enter next integer (q to quit): ");
status = scanf("%ld", &num);
}
printf("Total sum is %d.\n", sum);
return 0;
}
// 可以替換循環主體
while (scanf("%ld", &num) == 1)
{
/* 循環主體 */
}
程序說明:
注意,while 循環,只有跟在測試條件後面的第一條語句,纔是循環的一部分。
while 循環接空語句:
關係運算符:
注意,比較浮點數的大小時,儘量只使用 > 或 < ,不要使用 == (因爲有舍入誤差)
優先級:
2 for 循環(計數循環)
1 for 循環簡介
2 for 循環的靈活使用
// 一次遞增多個數
for (n = 2; n <= 60; n = n + 13)
printf("%d \n", n);
// 遞增量幾何增長
for (debt = 100.0f; debt < 150.0f; debt = debt * 1.1f)
{
printf("Your debt is now $%.2f.\n", debt);
}
// ASCII 字符遞增
for (ch = 'a', ch <= 'z', ch++)
printf("The ASCII value of %c is %d.\n", ch, ch);
省略表達式
3 其他賦值運算符 += -= /=
4 逗號運算符
逗號運算符把兩個表達式連接成一個表達式,並保證最左邊的表達式最先求值。逗號運算符通常在 for 循環的表達式中包含更多的信息,整個逗號表達式的值是逗號右側表達式的值。
逗號運算符是一個序列點,能夠保證從左至右求值。
逗號表達式的值,是右側項的值。
3 do while 循環
do while 循環結構
4 嵌套循環
打印九九乘法表
#include <stdio.h>
int main(void)
{
int row, col;
for (row = 1; row <= 9; row++)
{
for (col = 1; col <= row; col++)
{
printf("%d×%d=%2d ", row, col, row * col);
}
printf("\n");
}
printf("Done!\n");
return 0;
}
執行結果
5 數組簡介
使用帶返回值的函數
// power.c -- 計算數的整數次冪
#include <stdio.h>
double power(double x, int n);
int main(void)
{
int n;
double x, pow;
printf("Enter x (double) and n (int) or (q to quit): ");
while (scanf("%lf%d", &x, &n) == 2)
{
pow = power(x, n);
printf("%f ^ %d = %f\n", x, n, pow);
printf("Enter x (double) and n (int) or (q to quit): ");
}
printf("Done!\n");
return 0;
}
double power(double x, int n)
{
int i;
double pow = 1.0;
for (i = 1; i <= n; i++)
pow *= x;
return pow;
}