明解C语言入门篇_第3章_分支结构程序

前言

本文为业余学习《明解C语言入门篇》的记录,包含代码清单和练习题。
开始学习时间:2022年8月21日
+++++++++++++++++++++++++++++++
第1章 初识C语言
第2章 运算和数据类型
第3章 分支结构程序
第4章 程序的循环控制
第5章 数组
第6章 函数
第7章 基本数据类型
第8章 动手编写各种程序吧
第9章 字符串的基本知识
第10章 指针
第11章 字符串和指针
第12章 结构体
第13章 文件处理
+++++++++++++++++++++++++++++++

第3章、分支结构程序

3-1 if语句

代码清单 3-1

// 输入的整数能被5整除吗

#include <stdio.h>

int main()
{
	int n;
	
	printf("请输入一个整数:");
	scanf("%d",&n);

	if (n%5)
	{
		puts("输入的整数不能被5整除。");
	}

	return 0;
}

代码清单 3-2

//输入的整数是奇数吗

#include <stdio.h>

int main()
{
	int n;
	
	printf("请输入一个整数:");
	scanf("%d",&n);

	if (n%2)
	{
		puts("输入的整数是奇数。");
	}

	return 0;
}

代码清单 3-3

//输入的整数能被5整除吗

#include <stdio.h>

int main()
{
	int n;
	
	printf("请输入一个整数:");
	scanf("%d",&n);

	if (n%5)
	{
		puts("输入的整数不能被5整除。");
	} 
	else
	{
		puts("输入的整数能被5整除。");
	}

	return 0;
}

代码清单 3-4

//输入的整数值是奇数还是偶数

#include <stdio.h>

int main()
{
	int n;
	
	printf("请输入一个整数:");
	scanf("%d",&n);

	if (n%2)
	{
		puts("输入的是奇数。");
	} 
	else
	{
		puts("输入的是偶数。");
	}

	return 0;
}

练习 3-1

//练习3-1,约数

#include <stdio.h>

int main()
{
	int n1,n2;
	
	printf("请输入整数n1:");
	scanf("%d",&n1);
	printf("请输入整数n2:");
	scanf("%d",&n2);

	if (n1%n2)
	{
		puts("n2不是n1的约数。");
	} 
	else
	{
		puts("n2是n1的约数。");
	}

	return 0;
}

代码清单 3-5

//输入的整数是否为0

#include <stdio.h>

int main()
{
	int n;
	
	printf("请输入一个整数:");
	scanf("%d",&n);

	if (n)
	{
		puts("该整数不是0。");
	} 
	else
	{
		puts("该整数是0。");
	}

	return 0;
}

代码清单 3-6

//输入的两个整数相等吗

#include <stdio.h>

int main()
{
	int n1,n2;
	
	printf("请输入整数n1:");
	scanf("%d",&n1);
	printf("请输入整数n2:");
	scanf("%d",&n2);

	if (n1==n2)
	{
		puts("它们相等。");
	}
	else
	{
		puts("它们不相等。");
	}	

	return 0;
}

代码清单 3-7

//输入的两个整数相等吗

#include <stdio.h>

int main()
{
	int n1,n2;

	printf("请输入整数n1:");
	scanf("%d",&n1);
	printf("请输入整数n2:");
	scanf("%d",&n2);

	if (n1!=n2)
	{
		puts("它们不相等。");
	} 
	else
	{
		puts("它们相等。");
	}
}

代码清单 3-8

//个位数是5吗

#include <stdio.h>

int main()
{
	int n;

	printf("请输入一个整数:");
	scanf("%d",&n);

	if (n%10==5)
	{
		puts("该整数的个位数是5。");
	}
	else
	{
		puts("该整数的个位数不是5。");
	}
}

代码清单 3-9

//判断输入的整数的符号

#include <stdio.h>

int main()
{
	int n;

	printf("请输入一个整数:");
	scanf("%d",&n);

	if (n==0)
		{
			puts("该整数为0。");
		}
	else 
		if (n>0)
			{
				puts("该整数为正整数。");
			}
		else
			{
				puts("该整数为负整数。");
			}

	return 0;	
}

练习 3-2

//练习3-2

#include <stdio.h>

int main()
{
	int n;

	printf("请输入一个整数:");
	scanf("%d",&n);

	if (n==0)
	{
		puts("此整数为0。");
	}
	else if (n>0)
	{
		puts("此整数为正整数。");
	}
	else if (n<0)
	{
		puts("此整数为负整数。");
	}

	return 0;
}

练习 3-3

//练习3-3 显示输入整数的绝对值

#include <stdio.h>

int main()
{
	int n;

	printf("请输入一个整数:");
	scanf("%d",&n);

	if (n >= 0)
	{
		printf("它的绝对值是%d。\n",n);
	}
	else
	{
		printf("它的绝对值是%d。\n",-n);
	}

	return 0;
}

练习 3-4

//练习3-4,比较两个整数大小

#include <stdio.h>

int main()
{
	int n1,n2;

	puts("请输入两个整数。");

	printf("n1 = ");
	scanf("%d",&n1);
	printf("n2 = ");
	scanf("%d",&n2);

	if (n1==n2)
	{
		puts("n1和n2相等。");
	}
	else if (n1>n2)
	{
		puts("n1大于n2。");
	}
	else
	{
		puts("n1小于n2。");
	}

	return 0;
}

代码清单 3-10

//如果输入的整数值为正,则判断该值的奇偶性并显示

#include <stdio.h>

int main()
{
	int n;

	printf("请输入一个整数:");
	scanf("%d",&n);

	if (n>0)
		if (n%2)
		{
			puts("该整数为奇数。");
		}
		else
		{
			puts("该整数为偶数。");
		}
	else
	{
		puts("您输入的不是正数。");
	}

	return 0;
}

练习 3-5

//练习3-5,确认相等运算符和关系运算符的运算结果是1和0

#include <stdio.h>

int main()
{
	int n;

	n=(1==2);			//结果为假(0)
	printf("%d\n",n);

	n=(1<2);			//结果为真(1)
	printf("%d\n",n);

	n=(1>2);			//结果为假(0)
	printf("%d\n",n);

	n=(1!=2);			//结果为真(1)
	printf("%d\n",n);

	return 0;
}

代码清单 3-11

//显示所输入的两个整数中较大的数

#include <stdio.h>

int main()
{
	int n1, n2;

	puts("请输入两个整数。");
	printf("整数1:");	scanf("%d", &n1);
	printf("整数2:");	scanf("%d", &n2);

	if (n1 > n2)
	{
		printf("较大的数是%d。\n", n1);
	}
	else
	{
		printf("较大的数是%d。\n", n2);
	}

	return 0;
}

代码清单 3-12

//显示所输入的两个整数中较大的数(其2)

#include <stdio.h>

int main()
{
	int n1, n2, max;

	puts("请输入两个整数。");
	printf("整数1:");	scanf("%d", &n1);
	printf("整数2:");	scanf("%d", &n2);

	if (n1 > n2)
	{
		max = n1;
	}
	else
	{
		max = n2;
	}

	printf("较大的数是%d。\n", max);

	return 0;
}

代码清单 3-13

//计算所输入的三个整数中最大值并显示

#include <stdio.h>

int main()
{
	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-14

//显示所输入的两个整数中较大的数(其3:条件运算符)

#include <stdio.h>

int main()
{
	int n1, n2, max;
	
	puts("请输入两个整数。");
	printf("整数1:");	scanf("%d", &n1);
	printf("整数2:");	scanf("%d", &n2);

	max = n1 > n2 ? n1:n2;

	printf("较大的数是%d。\n", max);

	return 0;
}

代码清单 3-15

//计算输入的两个整数的差并显示(条件运算符)

#include <stdio.h>

int main()
{
	int n1, n2;

	puts("请输入两个整数。");
	printf("整数1:");	scanf("%d", &n1);
	printf("整数2:");	scanf("%d", &n2);

	printf("它们的差是%d。\n", n1 > n2 ? n1 - n2:n2 - n1);

	return 0;
}

练习 3-6

//编写一段程序,计算出输入的三个整数中的最小值并显示

#include <stdio.h>

int main()
{
	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;
}

练习 3-7

//编写一段程序,计算出输入的四个整数中的最大值并显示

#include <stdio.h>

int main()
{
	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;
}

练习 3-8

//使用if语句替换代码清单3-15程序中的条件运算符,实现同样的功能

#include <stdio.h>

int main()
{
	int n1, n2, diff;

	puts("请输入两个整数。");
	printf("整数1:");	scanf("%d", &n1);
	printf("整数2:");	scanf("%d", &n2);

	if (n1 > n2)
	{
		diff = n1 -n2;
	}
	else
	{
		diff = n2 - n1;
	}

	printf("它们的差是%d。\n", diff);

	return 0;
}

练习 3-9

//使用条件运算符替换练习3-6的程序中的if语句,实现同样的功能

#include <stdio.h>

int main()
{
	int n1, n2, n3;

	puts("请输入三个整数。");
	printf("整数1:");	scanf("%d", &n1);
	printf("整数2:");	scanf("%d", &n2);
	printf("整数3:");	scanf("%d", &n3);

	printf("最小值是%d。\n", (n1 < n2 ? n1:n2) < n3 ? (n1 < n2 ? n1:n2):n3);

	return 0;
}

代码清单 3-16

//计算输入的两个整数中较大值和较小值并显示。

#include <stdio.h>

int main()
{
	int n1,n2,max,min;

	puts("请输入两个整数。");
	printf("整数n1:");		scanf("%d",&n1);
	printf("整数n2:");		scanf("%d",&n2);

	if (n1>n2)
	{
		max=n1;
		min=n2;
	} 
	else
	{
		max=n2;
		min=n1;
	}

	printf("两个整数中较大值是%d,较小值是%d。\n",max,min);

	return 0;
}

代码清单 3-17

//显示所输入的月份所处的季节

#include <stdio.h>

int main()
{
	int month;

	printf("请输入月份:");
	scanf("%d",&month);

	if (month>=3 && month <=5)
	{
		printf("%d月是春季。\n",month);
	} 
	else if (month>= 6 && month<=8)
	{
		printf("%d月是夏季。\n",month);
	}
	else if (month>=9 && month<=11)
	{
		printf("%d月是秋季。\n",month);
	}
	else if (month==12 || month==1 || month==2)
	{
		printf("%d月是冬季。\n",month);
	}
	else
	{
		printf("%d月不存在。\n",month);
	}	

	return 0;
}

练习3-10

//输入三个整数,判断有几个相等。

#include <stdio.h>

int main()
{
	int A,B,C;

	puts("请输入三个整数。");
	printf("整数A:");	scanf("%d",&A);
	printf("整数B:");	scanf("%d",&B);
	printf("整数C:");	scanf("%d",&C);

	if (A==B && A==C)
	{
		printf("三个值都相等。\n");
	} 
	else if (A!=B && A!=C && B!=C)
	{
		printf("三个值都不相等。\n");
	}
	else
	{
		printf("有两个值相等。\n");
	}	

	return 0;
}

练习 3-11

//用逻辑或运算符判断两个整数小于等于10还是大于等于11
#include <stdio.h>

int main()
{
	int A,B;

	printf("整数A:");  scanf("%d",&A);
	printf("整数B:");  scanf("%d",&B);

	if (A-B>=10||B-A>=10)
	{
		puts("它们的差大于等于10。");
	} 
	else
	{
		puts("它们的差小于等于10。");
	}
}

3-2 switch语句

代码清单 3-18

//显示所输入的整数除以3的余数

#include <stdio.h>

int main()
{
	int no;

	printf("请输入一个整数no:");
	scanf("%d",&no);

	if (no % 3 == 0)
	{
		printf("该整数能被3整除。\n");
	} 
	else if (no % 3 == 1)
	{
		printf("该整数除以3的余数是1。\n");
	}
	else
	{
		printf("该整数除以3的余数是2。\n");
	}

	return 0;
}

代码清单 3-19

//显示所输入整数除以3的余数

#include <stdio.h>

int main()
{
	int no;

	printf("请输入一个整数:");
	scanf("%d",&no);

	switch (no % 3)
	{
	case 0: puts("该整数能被3整除。");		break;
	case 1: puts("该整数除以3余数为1。");	break;
	case 2: puts("该整数除以3余数为2。");	break;
	}

	return 0;
}

代码清单 3-20

//确认switch语句动作的程序

#include <stdio.h>

int main()
{
	int sw;

	printf("整数:");
	scanf("%d",&sw);

	switch (sw)
	{
	case 1  : puts("A");	puts("B");		break;
	case 2  : puts("C");
	case 5  : puts("D");					break;
	case 6  : 
	case 7  : puts("E");					break;
	default : puts("F");					break;
	}

	return 0;
}

练习 3-12

//输入的整数是奇数还是偶数

#include <stdio.h>

int main()
{
	int no;

	printf("请输入一个整数:");
	scanf("%d",&no);

	switch (no % 2)
	{
	case 0  : puts("该整数是偶数。");	break;
	default : puts("该整数是奇数。");
	}

	return 0;
}

练习 3-13

//练习3-13,用switch语句改写代码清单3-17

#include <stdio.h>

int main()
{
	int month;

	printf("请输入月份:");
	scanf("%d",&month);

	switch (month)
	{
	case  3 :
	case  4 :
	case  5 : puts("春");	break;
	case  6 :
	case  7 :
	case  8 : puts("夏");	break;
	case  9 :
	case 10 :
	case 11 : puts("秋");	break;
	case 12 :
	case  1 :
	case  2 : puts("冬");	break;
	default : puts("该月份不存在。");
	}

	return 0;
}

总结

summary1

#include <stdio.h>

int main()
{
	int month;

	printf("请输入月份:");
	scanf("%d", &month);

	if (month < 1 || month > 12)
	{
		printf("%d月不存在!!\a\n", month);
	}
	else if (month <= 2 || month == 12)
	{
		printf("%d月是冬季。\n", month);
	}
	else if (month >= 9)
	{
		printf("%d月是秋季。\n", month);
	}
	else if (month >= 6)
	{
		printf("%d月是夏季。\n", month);
	}
	else
	{
		printf("%d月是春季。\n", month);
	}

	return 0;
}

summary2

#include <stdio.h>

int main()
{
	int sw;

	printf("请输入颜色[红:1,蓝:2,白:3]:");
	scanf("%d", &sw);

	switch (sw)
	{
		case 1 : printf("红色");	break;
		case 2 : printf("蓝色");	break;
		case 3 : printf("白色");	break;
	}

	putchar('\n');

	return 0;
}

summary3

#include <stdio.h>

int main()
{
	int n1, n2;

	puts("请输入两个整数。");
	printf("整数1:");	scanf("%d", &n1);
	printf("整数2:");	scanf("%d", &n2);

	if (n1 > n2)
	{
		printf("较大的数是n1。\n");
		printf("它们的差是%d。\n", n1 - n2);
	}
	else
	{
		printf("较大的数是n2。\n");
		printf("它们的差是%d。\n", n2 - n1);
	}

	return 0;
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值