第4章 程序的循环控制
示例代码:
示例代码 4-1
/*
输入的整数是奇数还是偶数呢(按照自己的意愿进行循环操作)
*/
#include <stdio.h>
int main(void)
{
int cont; // 要继续吗
do {
int no;
printf("请输入一个整数:");
scanf("%d", &no);
if (no % 2)
puts("该整数是奇数。");
else
puts("该整数是偶数。");
printf("要重复一次吗?【Yes...0 / No...9】:");
scanf("%d", &cont);
} while (cont == 0);
return (0);
}
示例代码 4-2
/*
逆向显示输入的非负整数
*/
#include <stdio.h>
int main(void)
{
int num;
do {
printf("请输入一个非负整数:");
scanf("%d", &num);
if (num < 0)
puts("请不要输入负整数。");
} while (num < 0);
// 当num大于等于0的时候
printf("该整数的逆向显示的结果是");
do {
printf("%d", num % 10); // 显示最后一位
num = num / 10; // 右移一位
} while (num > 0);
puts("。");
return (0);
}
示例代码 4-3
/*
计算输入的非负整数的位数
*/
#include <stdio.h>
int main(void)
{
int num;
int dig; // 位数
do {
printf("请输入一个非负整数:");
scanf("%d", &num);
if (num < 0)
puts("请不要输入负整数。");
} while (num < 0);
// 当num大于等于0的时候
dig = 0;
do {
num = num / 10; // 右移一位
dig = dig + 1;
} while (num > 0);
printf("该整数的位数是%d。\n", dig);
return (0);
}
示例代码 4-4
/*
计算并显示从1到5的和
*/
#include <stdio.h>
int main(void)
{
int no = 1;
int sum = 0;
do {
sum = sum + no;
no = no + 1;
} while (no <= 5);
printf("1到5的合计值是%d。\n", sum);
return (0);
}
示例代码 4-5
/*
计算并显示从1到5的和 (使用复合赋值运算符)
*/
#include <stdio.h>
int main(void)
{
int no = 1;
int sum = 0;
do {
sum += no;
no += 1;
} while (no <= 5);
printf("1到5的合计值是%d。\n", sum);
return (0);
}
示例代码 4-6
/*
计算并显示从1到5的和 (使用复合赋值运算符和后置递增运算符)
*/
#include <stdio.h>
int main(void)
{
int no = 1;
int sum = 0;
do {
sum += no;
no++;
} while (no <= 5);
printf("1到5的合计值是%d。\n", sum);
return (0);
}
示例代码 4-7
/*
从输入整数开始倒数到0
*/
#include <stdio.h>
int main(void)
{
int no;
printf("请输入一个整数:");
scanf("%d", &no);
while (no >= 0) {
printf("%d ", no);
no--; // no的值递减(减少1)
}
putchar('\n'); // 换行
return (0);
}
示例代码 4-8
/*
从输入整数开始倒数到0 (第二版)
*/
#include <stdio.h>
int main(void)
{
int no;
printf("请输入一个整数:");
scanf("%d", &no);
while (no >= 0)
printf("%d ", no--); // no的值在显示之后递减
putchar('\n');
return (0);
}
示例代码 4-9
/*
递增显示从0到输入的正整数为止的各个整数
*/
#include <stdio.h>
int main(void)
{
int i, no;
printf("请输入一个正整数:");
scanf("%d", &no);
i = 0;
while (i <= no)