《明解C语言》第三章:分支结构程序及课后试题代码示例


前言

C语言是结构化的程序设计语言,可以执行顺序结构,选择结构,循环结构等。本篇将会着重介绍分支与循环语句


提示:以下是本篇文章正文内容,下面案例可供参考

一、if

// 判断输入的数字是否能被5整除

#include <stdio.h>

int main()
{
	int no  = 0;
	
	printf("请输入一个整数:");
	scanf("%d",&no);
	
	if(no % 5 != 0 )
//这里缩写为if(no % 5)也可以,只有当值不为0才会进入此处的判断
	{
		puts("输入的整数不能被5整除。");
	}
	
	return 0;
}
// 判断输入的数字是否为整数

#include <stdio.h>

int main()
{
	int no  = 0;
	
	printf("请输入一个整数:");
	scanf("%d",&no);
	
	if(no % 2 != 0 )
//这里缩写为if(no % 2)也可以,只有当值不为0才会进入此处的判断
	{
		puts("输入的整数是奇数。");
	}
	
	return 0;
}
// 双分支形式判断输入的数字是否能被5整除

#include <stdio.h>

int main()
{
	int no  = 0;
	
	printf("请输入一个整数:");
	scanf("%d",&no);
	
	if(no % 5 != 0 )
	{
		puts("输入的整数不能被5整除。。");
	}
	else
	{
		puts("输入的整数能被5整除。。");
	}
	
	return 0;
}
// 双分支形式判断输入的数字是奇数还是偶数

#include <stdio.h>

int main()
{
	int no  = 0;
	
	printf("请输入一个整数:");
	scanf("%d",&no);
	
	if(no % 2 != 0 )
	{
		puts("该整数是奇数。");
	}
	else
	{
		puts("该整数是偶数。");
	}
	
	return 0;
}

以下代码示例为《明解C语言》第三章练习题3-1.

//判断输入的整数是否为另一个数的约数

#include <stdio.h>

int main()
{
	int A = 0;
	int B = 0;
	
	puts("请输入两个整数。");
	printf("整数A:")
	scanf("%d",&A);
	printf("整数B:")
	scanf("%d",&B);
	
	if(A % B == 0)
	{
		puts("B是A的约数")
	}
	else
	{
		puts("B不是A的约数")
	}
	
	return 0;
}
//输入的整数是否为0

#include <stdio.h>

int main()
{
	int num = 0;
	
	printf("请输入一个整数:");
	scanf("%d",&num);
	
	if( num )
	{
		puts("该整数不是0。");
	}
	else
	{
		puts("该整数是0。");
	}
	
	return 0;
}
//利用==判断输入的两个整数是否相等(版本1)

#include <stdio.h>

int main()
{
	int n1 = 0;
	int n2 = 0;
	
	printf("整数1:");
	scanf("%d",&n1); 
	printf("整数2:");
	scanf("%d",&n2); 
	
	if(n1 == n2)
	{
		puts("它们相等。");
	}
	else
	{
		puts("它们不相等。");
	}
	
	return 0;	
}
//利用!=符号判断输入的两个整数是否相等(版本2)
#include <stdio.h>

int main()
{
	int n1 = 0;
	int n2 = 0;
	
	printf("整数1:");
	scanf("%d",&n1); 
	printf("整数2:");
	scanf("%d",&n2); 
	
	if(n1 != n2)
	{
		puts("它们不相等。");
	}
	else
	{
		puts("它们相等。");
	}
	
	return 0;
}
//判断输入的整数个位数是否为0

#include <stdio.h>

int main()
{
	int num = 0;
	
	printf("请输入一个整数:");
	scanf("%d",&num );
	
	if(num % 10 == 5)
	{
		puts("该整数的个位数是5。");
	}
	else
	{
		puts("该整数的个位数不是5。");
	}
	
	return 0;
}
//判断输入整数的符号

#include <stdio.h>

int main()
{
	int no = 0;
	
	printf("请输入一个整数:");
	scanf("%d",&no );
	
	if(no == 0)
	{
		puts("该整数为0。");
	}
	else if(no > 0)
	{
		puts("该整数为正数。");
	}
	else
	{
		puts("该整数为负数。");
	}
	
	return 0;
}

以下代码示例为《明解C语言》第三章练习题3-3/3-4

//计算输入值的绝对值

#include <stdio.h>

int main()
{
	int num = 0;
	
	printf("请输入一个整数:");
	scanf("%d",&num);
	
	if(num < 0)
	{
		printf("绝对值是%d",-num);
	}
	else
	{
		printf("绝对值是%d",num);
	}
	
	return 0;
}
//判断两个输入整数的大小关系

#include <stdio.h>

int main()
{
	int A = 0;
	int B = 0;
	
	puts("请输入两个整数:");
	printf("整数A:");
	scanf("%d",&A); 
	printf("整数B:");
	scanf("%d",&B); 
	
	if(A == B)
	{
		puts("A等于B。");
	}
	else if(A > B)
	{
		puts("A大于B。");
	}
	else
	{
		printf("A小于B。");
	}
	
	return 0;
}
//如果输入的整数值为正数,则显示该数的奇偶性

#include <stdio.h>

int main()
{
	int no = 0;
	printf("请输入一个整数:");
	scanf("%d",&no);
	
	if(no > 0)
	{
		if(no % 2 == 0)
		{
		puts("该整数为偶数。");
		}
		else 
		{
			puts("该整数为奇数。");
		}
	}
	else
	{
		puts("该整数不是正数。\a\n");
	}
	
	return 0;
}
//编写一段程序确认相等运算符和关系运算符的运算结果是1和0

#include <stdio.h>

int main()
{
	int num1 = 0;
	int num2 = 0;
	
	scanf("%d %d",&num1 ,& num2);//设为5和10
	int ret = (num1 == num2);//0
	int ret2 = (num1 > num2);//0
	int ret3 = (num1 < num2);//1

	printf("%d %d %d\n", ret, ret1 , ret2);
	
	return 0;
}
//显示所输入的两个整数中的较大值(书籍版本)

#include <stdio.h>

int main()
{
	int n1 = 0;
	int n2 = 0;
	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;
}
//显示所输入的两个整数中的较大值(简略版,三目操作符版)

#include <stdio.h>

int main()
{
	int n1 = 0;
	int n2 = 0;
	int max = 0;
	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;
}
//计算三个数中的最大数

#include <stdio.h>

int main()
{
	int n1 = 0;
	int n2 = 0;
	int n3 = 0;
	int max = n1;
	
	puts("请输入三个整数。")
	printf("整数1:");
	scanf("%d",&n1);
	printf("整数2:");
	scanf("%d",&n2);
	printf("整数3:");
	scanf("%d",&n3);
	
	if(n2 > max)
	{
		max = n2;
	}
	if(n3 > max)
	{
		max = n3;
	}
	printf("最大值是%d。\n",max);
	
	return 0;
}

二、条件运算符

//显示所输入的两个整数中的较大值(简略版,三目操作符版)

#include <stdio.h>

int main()
{
	int n1 = 0;
	int n2 = 0;
	int max = 0;
	puts("请输入两个整数:");
	printf("整数1:")
	scanf("%d",&n1);
	printf("整数2:")
	scanf("%d",&n2);
	
	max = (n1 > n2 ?) n1 :n2 ;
//条件1(n1 > n2)成立,条件2(n1)是整个表达式的结果,条件1不成立,条件3(n2)是整个表达式的结果.
	printf("较大的数是%d。\n",max);
	
	return 0;
}
//计算输入的两个整数的差值并显示

#include <stdio.h>

int main()
{
	int n1 = 0;
	int n2 = 0;
	
	puts("请输入两个整数:");
	printf("整数1:")
	scanf("%d",&n1);
	printf("整数2:")
	scanf("%d",&n2);
	
	printf("它们的差值是%d。\n",(n1 > n2 ?) n1 - n2 : n2 - n1);
	
	return 0;
}

以下代码示例为《明解C语言》第三章练习题3-6/3-9.

//判断输入的三个整数中的最小值并显示

#include <stdio.h>

int main()
{
	int n1 = 0;
	int n2 = 0;
	int n3 = 0;
	int min = n1;
	
	puts("请输入三个整数:");
	printf("整数1:")
	scanf("%d",&n1);
	printf("整数2:")
	scanf("%d",&n2);
	printf("整数3:")
	scanf("%d",&n3);
	
	if(n1 < min)
	{
		min = n1;
	}
	if(n3 < min)
	{
		min = n3;
	}
	printf("三个整数的最小值是%d。\n",min);
	
	return 0;
}
//判断输入的四个整数中的最大值并显示(if语句)

#include <stdio.h>

int main()
{
	int n1 = 0;
	int n2 = 0;
	int n3 = 0;
	int n4 = 0;
	int max = n1;
	
	puts("请输入四个整数:");
	printf("整数1:")
	scanf("%d",&n1);
	printf("整数2:")
	scanf("%d",&n2);
	printf("整数3:")
	scanf("%d",&n3);
	printf("整数4:")
	scanf("%d",&n4);
	
	if(n2 > max)
	{
		max = n2;
	}
	if(n3 > max)
	{
		max = n3;
	}
	if(n4 > max)
	{
		max = n4;
	}
	printf("四个整数的最大值是%d。\n",max);
	
	return 0;
}
//计算输入的两个整数的差值并显示

#include <stdio.h>

int main()
{
	int n1 = 0;
	int n2 = 0;
	int ret = 0;
	
	puts("请输入两个整数:");
	printf("整数1:")
	scanf("%d",&n1);
	printf("整数2:")
	scanf("%d",&n2);
	
	if(n1 > n2)
	{
		ret = n1 - n2;
	}
	else
	{
		ret = n1 - n2;
	}
	printf("它们的差值是%d。\n",ret);
	
	return 0;
}
//判断输入的三个整数中的最小值并显示

#include <stdio.h>

int main()
{
	int n1 = 0;
	int n2 = 0;
	int n3 = 0;
	
	puts("请输入三个整数:");
	printf("整数1:")
	scanf("%d",&n1);
	printf("整数2:")
	scanf("%d",&n2);
	printf("整数3:")
	scanf("%d",&n3);
	
	int mid = (n1 < n2 ? n1 : n2);
	int min = (mid < n3 ?  mid :n3);
	printf("三个整数的最小值是%d。\n",min);
	
	return 0;
}
#include 

int main()
{
	int n1 = 0;
	int n2 = 0;
	int max = 0;
	int min = 0puts("请输入两个整数:");
	printf("整数1:");
	scanf("%d",&n1);
	printf("整数2:");
	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;
}

三、逻辑运算符

//显示所输入的月份所处的季节(if版本)

#include <stdio.h>

int main()
{
	int month = 0;
	printf("请输入月份:");
	scanf("%d",&month);
	if(month >= 3 && month <= 5)
	{
		printf("%d月是春季。\n",month);
	}
	else if(month >= 3 && 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月不存在!!\a\n",month);
	}
	return 0;
}
//显示所输入的整数除以3的余数

#include <stdio.h>

int main()
{
	int no = 0;
	printf("请输入一个整数:");
	scanf("%d",&no);
	if (no % 3 == 0)
	{
	  puts("该数能被3整除。");
	}
	else if (no % 3 == 1)
	{
	  puts("该数除以3的余数是1。");
	}
	else
	{
	  puts("该数除以3的余数是2。");
	}
	return 0;
}
//显示所输入的月份所处的季节(switch语句版本)

#include <stdio.h>

int main()
{
	int month = 0;
	printf("请输入月份:");
	scanf("%d", &month);
	switch (month)
	{
	case 3:
	case 4:
	case 5:
		printf("%d月是春季。\n", month);
		break;
	case 6:
	case 7:
	case 8:
		printf("%d月是夏季。\n", month);
	case 9:
	case 10:
	case 11:
		printf("%d月是秋季。\n", month);
		break;
	case 12:
	case 1:
	case 2:
		printf("%d月是动季。\n", month);
		break;
	default:
		printf("%d月不存在!!\a\n", month);
		break;
	}
	return 0;
}

以下代码示例为《明解C语言》第三章练习题3-10/3-11.

#include <stdio.h>

int main()
{
	int A = 0;
	int B = 0;
	int C = 0;
	
	puts("请输入三个整数。");
	printf("整数A:");
	scanf("%d",&A);
	printf("整数B:");
	scanf("%d",&B);
	printf("整数C:");
	scanf("%d",&C);
	
	if(A == B && A == C)
	{
		puts("三个值都相等。");
	}
	else if(A == B || A == C || B == C)
	{
		puts("有两个值相等。");
	}
	else
	{
		puts("三个值各不相同。");
	}
	return 0;
}
//判断输入的两个整数的差值

#include <stdio.h>

int main()
{
	int A = 0;
	int B = 0;

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

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

	return 0;
}

四、switch语句

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

#include <stdio.h>

int main()
{
	int no = 0;
	printf("请输入一个整数:");
	scanf("%d",&no);
	switch(no % 3)
	{
		case 0:
				puts("该数能被3整除。\n");
				break;
		case 1:
				puts("该数除以3的余数是1。\n");
				break;
		case 2:
				puts("该数除以3的余数是2。\n");
				break;
	}
	return 0;
}
//显示所输入的整数除以3的余数

#include <stdio.h>

int main()
{
	int no = 0;
	printf("请输入一个整数:");
	scanf("%d",&no);
	if (no % 3 == 0)
	{
	  puts("该数能被3整除。");
	}
	else if (no % 3 == 1)
	{
	  puts("该数除以3的余数是1。");
	}
	else
	{
	  puts("该数除以3的余数是2。");
	}
	return 0;
}

以下代码示例为《明解C语言》第三章练习题3-12/3-13.

//显示所输入的月份所处的季节(switch语句版本)

#include <stdio.h>

int main()
{
	int month = 0;
	printf("请输入月份:");
	scanf("%d", &month);
	switch (month)
	{
	case 3:
	case 4:
	case 5:
		printf("%d月是春季。\n", month);
		break;
	case 6:
	case 7:
	case 8:
		printf("%d月是夏季。\n", month);
	case 9:
	case 10:
	case 11:
		printf("%d月是秋季。\n", month);
		break;
	case 12:
	case 1:
	case 2:
		printf("%d月是动季。\n", month);
		break;
	default:
		printf("%d月不存在!!\a\n", month);
		break;
	}
	return 0;
}
//请判断输入整数的奇偶性(switch版本)

#include <stdio.h>

int main()
{
	int no = 0;
	printf("请输入一个整数:");
	scanf("%d",&no);
	switch( no % 2)
	{
		case 0 :
			puts("该整数是偶数。");
			break;
		case 1 :
			puts("该整数是奇数。");
			break;			
	}
	return 0;
}

总结

以上示例只是简单向读者介绍了有关C语言中分支结构的简单语法与部分注意事项,若想实际掌握还是得长期以往加以训练以至炉火纯青,若阅者仅只停留于目过则止的层面未曾多加思考则无法迅速做出各类题目的解答。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mo_吉托的莫。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值