第3章 分支结构程序
示例代码:
示例代码 3-1
/*
输入的整数能被5整除吗
*/
#include <stdio.h>
int main(void)
{
int vx;
printf("请输入一个整数:");
scanf("%d", &vx);
if (vx % 5)
puts("输入的整数不能被5整除。");
return (0);
}
示例代码 3-2
/*
输入的整数是奇数吗
*/
#include <stdio.h>
int main(void)
{
int no;
printf("请输入一个整数:");
scanf("%d", &no);
if (no % 2)
puts("输入的整数是奇数。");
return (0);
}
示例代码 3-3
/*
输入的整数能否被5整除
*/
#include <stdio.h>
int main(void)
{
int vx;
printf("请输入一个整数:");
scanf("%d", &vx);
if (vx % 5)
puts("该整数不能被5整除。");
else
puts("该整数能被5整除。");
return (0);
}
示例代码 3-4
/*
输入的整数是奇数还是偶数
*/
#include <stdio.h>
int main(void)
{
int no;
printf("请输入一个整数:");
scanf("%d", &no);
if (no % 2)
puts("该整数是奇数。");
else
puts("该整数是偶数。");
return (0);
}
示例代码 3-5
/*
输入的整数值是否为0
*/
#include <stdio.h>
int main(void)
{
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (num)
puts("该整数不是0。");
else
puts("该整数是0。");
return (0);
}
示例代码 3-6
/*
输入的两个整数相等吗
*/
#include <stdio.h>
int main(void)
{
int x1, x2;
puts("请输入两个整数。");
printf("整数1:"); scanf("%d", &x1);
printf("整数2:"); scanf("%d", &x2);
if (x1 == x2)
printf("它们相等。\n");
else
printf("它们不相等。\n");
return (0);
}
示例代码 3-7
/*
输入的两个整数相等吗 (第二版)
*/
#include <stdio.h>
int main(void)
{
int x1, x2;
puts("请输入两个整数。");
printf("整数1:"); scanf("%d", &x1);
printf("整数2:"); scanf("%d", &x2);
if (x1 != x2)
printf("它们不相等。\n");
else
printf("它们相等。\n");
return (0);
}
示例代码 3-8
/*
个位数是5吗
*/
#include <stdio.h>
int main(void)
{
int vx;
printf("请输入一个整数:");
scanf("%d", &vx);
if (vx % 10 == 5)
puts("该整数的个位数是5。");
return (0);
}
示例代码 3-9
/*
判断输入整数的符号
*/
#include <stdio.h>
int main(void)
{
int no;
printf("请输入一个整数:");
scanf("%d", &no);
if (no == 0)
puts("该整数为0。");
else if (no > 0)
puts("该整数为正数。");
else
puts("该整数为负数。");
return (0);
}
示例代码 3-10
/*
显示出输入的两个整数中较大的数
*/
#include <stdio.h>
int main(void)
{
int n1, n2;
puts("请输入两个整数:");
printf("整数A:"); scanf("%d", &n1);
printf("整数B:"); scanf("%d", &n2);
if (n1 > n2)
printf("较大的数是%d。\n", n1);
else
printf("较大的数是%d。\n", n2);
return (0);
}
示例代码 3-11
/*
显示出输入的两个整数中较大的数并显示
*/
#include <stdio.h>
int main(void)
{
int n1, n2, max;
puts("请输入两个整数:");
printf("整数A:"); scanf("%d", &n1);
printf("整数B:"); scanf("%d", &n2);
if (n1 > n2)
max = n1;
else
max = n2;
printf("较大的数是%d。\n", max);
return (0);
}
示例代码 3-12
/*
计算输入的三个整数中的最大值并显示
*/
#include <stdio.h>
int main(void)
{
int n1, n2, n3, max;
puts("请输入三个整数。");
printf("整数1:"); scanf("%d", &n1);
printf("整数2:"); scanf("%d", &n2);
printf("整数3:"); scanf("%d", &n3);
max = n1;
if (n2 > max) max = n2;
if (n3 > max) max = n3;
printf("最大值是%d。\n", max);
return (0);
}
示例代码 3-13
/*
计算输入的两个整数中较大的数并显示(条件运算符)
*/
#include <stdio.h>
int main(void)
{
int n1, n2, max;
puts("请输入两个整数:");
printf("整数A:"); scanf("%d", &n1);
printf("整数B:"); scanf("%d", &n2);
max = (n1 > n2) ? n1 : n2; // 将较大的值赋给max
printf("较大的数是%d。\n", max);
return (0);
}
示例代码 3-14
/*
计算输入的两个整数的差并显示
*/
#include <stdio.h>
int main(void)
{
int n1, n2;
puts("请输入两个整数:");
printf("整数A:"); scanf("%d", &n1);
printf("整数B:"); scanf("%d", &n2);
printf("它们的差是%d。\n", (n1 > n2) ? n1 - n2 : n2 - n1);
return (0);
}
示例代码 3-15
/*
计算输入的两个整数中较大数和较小数并显示
*/
#include <stdio.h>
int main(void)
{
int n1, n2, max, min;
puts("请输入两个整数:");
printf("整数A:"); scanf("%d", &n1);
printf("整数B:"); scanf("%d", &n2);
if (n1 > n2) {
max = n1;
min = n2;
} else {
max = n2;
min = n1;
}
printf("较大的数是%d。\n", max);
printf("较小的数是%d。\n", min);
return (0);
}
示例代码 3-16
/*
显示输入月份所处的季节
*/
#include <stdio.h>
int main(void)
{
int month; // 月
printf("请输入月份:");
scanf("%d", &month);
if (month >= 3 && month <= 5)
puts("春天");
else if (month >= 6 && month <= 8)
puts("夏天");
else if (month >= 9 && month <= 11)
puts("秋天");
else if (month == 1 || month == 2 || month == 12)
puts("冬天");
else
puts("输入月份不存在!!\a");
return (0);
}
示例代码 3-17
/*
显示出输入整数除以3的余数
*/
#include <stdio.h>
int main(void)
{
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (num % 3 == 0)
puts("该数能被3整除。");
else if (num % 3 == 1)
puts("该数除以3的余数是1。");
else
puts("该数除以3的余数是2。");
return (0);
}
示例代码 3-18
/*
显示出输入整数除以3的余数 (switch语句)
*/
#include <stdio.h>
int main(void)
{
int num;
printf("请输入一个整数:");
scanf("%d", &num);
switch (num % 3) {
case 0:
puts("该数能被3整除。");
break;
case 1:
puts("该数除以3的余数是1。");
break;
case 2:
puts("该数除以3的余数是2。");
}
return (0);
}
示例代码 3-19
/*
确认switch语句动作的程序
*/
#include <stdio.h>
int main(void)
{
int sw;
printf("请输入一个整数:");
scanf("%d", &sw);
switch (sw) {
case 1: puts("A"); puts("B"); break;
case 2: puts("C"); break;
case 5: puts("D"); break;
case 6:
case 7: puts("E"); break;
default : puts("F"); break;
}
return (0);
}
练习代码 :
练习代码 e3-1
/*
判断是否为约数
*/
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a, b;
puts("请输入两个整数。");
printf("整数A:"); scanf("%d", &a);
printf("整数B:"); scanf("%d", &b);
if (a % b)
printf("B不是A的约数。\n");
else
printf("B是A的约数。\n");
return (0);
}
练习代码 e3-2
/*
关系运算符
*/
#include <stdio.h>
int main(void)
{
int a, b;
puts("输入两个整数:");
printf("整数a:"); scanf("%d", &a);
printf("整数b:"); scanf("%d", &b);
printf("%d > %d, %d\n", a, b, a > b);
printf("%d < %d, %d\n", a, b, a < b);
printf("%d = %d, %d\n", a, b, a == b);
printf("%d >= %d, %d\n", a, b, a >= b);
printf("%d <= %d, %d\n", a, b, a <= b);
return (0);
}
练习代码 e3-3
/*
显示绝对值
*/
#include <stdio.h>
int main(void)
{
int no;
printf("请输入一个整数:");
scanf("%d", &no);
if (no < 0)
printf("绝对值是%d。\n", -no);
else
printf("绝对值是%d。\n", no);
return (0);
}
练习代码 e3-4
/*
判断大小
*/
#include <stdio.h>
int main(void)
{
int n1, n2;
puts("请输入两个整数:");
printf("整数A:"); scanf("%d", &n1);
printf("整数B:"); scanf("%d", &n2);
if (n1 < n2)
printf("A小于B。\n");
else if (n1 > n2)
printf("A大于B。\n");
else
printf("A等于B。\n");
return (0);
}
练习代码 e3-5
/*
计算输入的三个整数中的最小值并显示
*/
#include <stdio.h>
int main(void)
{
int n1, n2, n3, min;
puts("请输入三个整数。");
printf("整数1:"); scanf("%d", &n1);
printf("整数2:"); scanf("%d", &n2);
printf("整数3:"); scanf("%d", &n3);
min = n1;
if (n2 < min) min = n2;
if (n3 < min) min = n3;
printf("最小值是%d。\n", min);
return (0);
}
练习代码 e3-6
/*
计算输入的四个整数中的最大值并显示
*/
#include <stdio.h>
int main(void)
{
int n1, n2, n3, n4, max;
puts("请输入四个整数。");
printf("整数1:"); scanf("%d", &n1);
printf("整数2:"); scanf("%d", &n2);
printf("整数3:"); scanf("%d", &n3);
printf("整数4:"); scanf("%d", &n4);
max = n1;
if (n2 > max) max = n2;
if (n3 > max) max = n3;
if (n4 > max) max = n4;
printf("最大值是%d。\n", max);
return (0);
}
练习代码 e3-7
/*
计算输入的两个整数的差并显示 (使用if语句)
*/
#include <stdio.h>
int main(void)
{
int n1, n2;
puts("请输入两个整数:");
printf("整数A:"); scanf("%d", &n1);
printf("整数B:"); scanf("%d", &n2);
if (n1 > n2)
printf("它们的差是%d。\n", n1 - n2);
else
printf("它们的差是%d。\n", n2 - n1);
return (0);
}
练习代码 e3-8
/*
计算输入的三个整数中的最小值并显示 (使用条件运算符)
*/
#include <stdio.h>
int main(void)
{
int n1, n2, n3, min;
puts("请输入三个整数。");
printf("整数1:"); scanf("%d", &n1);
printf("整数2:"); scanf("%d", &n2);
printf("整数3:"); scanf("%d", &n3);
min = n1;
if (n2 < min) min = n2;
if (n3 < min) min = n3;
printf("最小值是%d。\n", n3 < (min = (n1 < n2) ? n1 : n2) ? n3 : min);
return (0);
}
练习代码 e3-9
/*
判断三个整数是否相等
*/
#include <stdio.h>
int main(void)
{
int n1, n2, n3;
puts("请输入三个整数。");
printf("整数A:"); scanf("%d", &n1);
printf("整数B:"); scanf("%d", &n2);
printf("整数C:"); scanf("%d", &n3);
if (n1 == n2 && n2 == n3)
puts("三个值都相等");
else if (n1 == n2 || n1 == n3 || n2 == n3)
puts("有两个值相等");
else
puts("三个值各不相等");
return (0);
}
练习代码 e3-10
/*
判断两个整数的差(使用逻辑或运算符)
*/
#include <stdio.h>
int main(void)
{
int n1, n2, max, min;
puts("请输入两个整数。");
printf("整数A:"); scanf("%d", &n1);
printf("整数B:"); scanf("%d", &n2);
max = (n1 - n2) > 0 ? n1 : n2;
min = (n1 - n2) < 0 ? n1 : n2;
if (max - min < 10 || max - min == 0)
puts("它们的差小于等于10");
else
puts("它们的差大于等于11");
return (0);
}
练习代码 e3-11
/*
输入的整数是奇数还是偶数 (switch语句)
*/
#include <stdio.h>
int main(void)
{
int no;
printf("请输入一个整数:");
scanf("%d", &no);
switch (no % 2) {
case 0 : puts("该整数是偶数。"); break;
case 1 : puts("该整数是奇数。"); break;
}
return (0);
}
练习代码 e3-12
/*
显示输入月份所处的季节 (switch语句)
*/
#include <stdio.h>
int main(void)
{
int month; // 月
printf("请输入月份:");
scanf("%d", &month);
switch (month) {
case 1 :
case 2 :
case 12 : puts("冬天"); break;
case 3 :
case 4 :
case 5 : puts("春天"); break;
case 6 :
case 7 :
case 8 : puts("夏天"); break;
case 9 :
case 10 :
case 11 : puts("秋天"); break;
default : puts("输入月份不存在!!\a"); break;
}
return (0);
}