流程控制综合练习

流程控制综合练习

练习1.实现判断一个整数,属于哪个范围:大于0;小于0;等于0 (多分支)

#include <stdio.h>
int main(){
	int i =0;
	printf("请输入一个数:");
	scanf("%d",&i);
	if(i>0){
		printf("范围大于0");
	}else if(i==0){
		printf("范围等于0");
	}else{
		printf("范围小于0");
	}
	getchar();
}

image-20221022195130154

练习2.判断一个年份是否为闰年

#include<stdio.h>
int main(){
	
	//判断一个年份是否为闰年
	int num = 0;
	
	printf("请输入你要输入的年份:");
	scanf("%d",&num);
	
	if((num % 4 == 0 && num % 100 != 0) || (num % 400 == 0)){
		printf("%d是闰年",num);
	}else{
		printf("%d是平年",num);
	}
	getchar();
	 
}

image-20221022195404703

练习3.判断一个整数是否是水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。

153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
#include <stdio.h>
int main(){
	//思路分析
	//1.主要考察三位数的各个位的数字的使用
	//2.百位  num / 100
	//3.十位  num%100/10
	//4.各位  num%10
	//5.将得到各个数字(百位,十位,个位) 立方,并求和判断是否和原数相等
	
	int num = 0;
	printf("请输入一个整数:");
	scanf("%d",&num);
	int num1 = num /100;//百位
	int num2 = num % 100 / 10;//十位
	int num3 = num % 10;//十位
	
	if((num == num1 * num1 * num1 + num2 * num2 * num2 + num3 * num3 * num3)){
		printf("你输入的:%d 是水仙花数",num); 
	}else{
		printf("你输入的:%d 不是水仙花数",num); 
	}
	getchar();
}

image-20221022201414668

练习4.保存用户名和密码,判断用户名是否为“张三”,密码是否为1234,如果是,提示登录成功,否则提示登录失败

#include <stdio.h>
#include <string.h>
int main(){
	char name[10] = "";
	char pwd[10] = "";
	printf("请输入用户名:");
	scanf("\n%c",name);
	printf("请输入密码:");
	scanf("\n%c",pwd);
	
	if(strcmp("张三",name)==0 && strcmp("1234",pwd)==0){
		printf("\n登录成功");
	}else{
		printf("\n登录失败");
	}
	getchar();
	getchar();
}

image-20221022202559152

练习5.编写程序,根据输入的月份和年份,求出该月的天数(1-12), 就是需要考虑闰年(2月份 29)和平年(2月份 28)

#include<stdio.h>

int main() {
//编写程序,根据输入的月份和年份,求出该月的天数(1-12), 就是需要考虑闰年(2 月份 29)和平年(2 月份 28)
	
	int year = 0; //年 
	int month = 0; //月
	
	printf("请输入年份:");
	scanf("%d",&year);
	printf("\n请输入月份:");
	scanf("%d",&month);
	
	//1,3,5,7,8,10,12 --- 31 
	//2 月份 :闰年(2 月份 29)和平年(2 月份 28)
	//其他 30 
	switch(month){
		case 1: 
		case 3: 
		case 5: 
		case 7: 
		case 8: 
		case 10: 
		case 12: 
			printf("%d 年的 %d 月是%d", year, month, 31); 
			break;
		case 2: //判断 year 是闰年还是平年 
			if( (year % 4 == 0 && year % 100 !=0) || year % 400 == 0) { 
				printf("%d 年的 %d 月是%d天", year, month, 29); 
			}else{
				printf("%d 年的 %d 月是%d天", year, month, 28); 
			}
			break;
		default: 
			printf("%d 年的 %d 月是%d天", year, month, 30); 
			break;
	} 
 	getchar();
}

image-20221022205223478

练习6.定义变量保存一个数,判断(if)是否能被3整除或(||)能被7整除(%),如果是,则提示:能,否则提示:不能

#include<stdio.h>

int main() {

//定义变量保存一个数,判断(if)是否能被 3 整除或(||)能被 7 整除(%),如果是,则提示:能,否则提示:不能
 	
 	int num = 210;
 	if(num % 3 == 0 || num % 7 == 0){
 		printf("是"); 
	 }else{
	 	printf("不是"); 
	 }
	 getchar();
}

image-20221022205538451

练习7.输入星期几,如果是星期一到星期三,打印:AAA,星期四到星期五,打印:BBB,星期六到星期日,打印CCC, 如果都不是,提示,输入错误(提示switch+穿透)

#include<stdio.h>

int main() {

	//输入星期几,如果是星期一到星期三,打印:AAA,星期四到星期五,打印:BBB,星期六到星期日,打印 CCC, 
	//如果都不是,提示,输入错误
	
	int week = 0;
	printf("请输入星期:");
	scanf("%d",&week);
	
	switch(week){
		case 1:
		case 2: 
		case 3:
			printf("AAA");
			break;
		case 4:
		case 5:
			printf("BBB");
			break;
		case 6:
		case 7:
			printf("CCC");
			break; 
		
		default:
			printf("输入错误");
			break;
	}
	getchar();
}

image-20221022210413843

练习8.请使用for、while、do—while 三种形式打印1000——9999年内所有的闰年

for

#include<stdio.h>

int main() {

	int num;
	int count=0;
	for (num  = 1000;num <= 9999;num++){
		if((num % 4 == 0 && num % 100 != 0) || num % 400 == 0){
			printf("\n%d是闰年",num);
			count++;	
		}
	}
	printf("\n一共有%d个闰年",count);
	getchar();
}

while

int main() {

	int num = 1000;
	int count =0;
	while(num < 9999){
		if((num % 4 == 0 && num % 100 != 0) || num % 400 == 0){
			printf("\n%d是闰年",num);
			count++;
		}	
		num++;
	}
	printf("\n一共有%d个闰年",count);
	getchar();
}


do…while

#include<stdio.h>

int main() {

	int num = 1000;
	int count = 0;
	do {
		if((num % 4 == 0 && num % 100 != 0) || num % 400 == 0) {
			printf("\n%d是闰年",num);
			count++;
		}
		num++; 
	} while(num < 9999);
	printf("\n一共有%d个闰年",count);
	getchar();
}

image-20221022211330792

练习9.输出小写的a-z以及大写的Z—A

#include<stdio.h>

int main() {
	char n,m;
	for(n = 'a'; n <= 'z'; n++) {
		printf("%c ", n);
	}
	printf("\n====================================\n");
	for(m = 'Z'; m >= 'A'; m--) {
		printf("%c ", m);
	}
}

image-20221022205656966

练习10.求出1-1/2+1/3-1/4……1/100的和

#include<stdio.h>

int main() {

	//求出 1-1/2+1/3-1/4…..1/100 的和 
	//思路分析,找到算式的规律,并求解 
	// 1-1/2+1/3-1/4…..1/100 = (1/1)-(1/2)+(1/3)-(1/4)..... (1/100) 
	// 分母为奇数, 则符号时 + 
	// 分母为偶数, 则符号时 -
	
	//定义一个变量 sum 来统计和
	double sum = 0.0;
	int i;
	for(i = 1;i <= 100;i++){
		//如果i是奇数
		if(i % 2 != 0){
			sum += 1.0/i; // 注意,考虑保留小数 1.0 而不是 1
		}else{
			sum -= 1.0/i;
		}
	}
	
	printf("1-1/2+1/3-1/4…..1/100 的和为sum = %.2f",sum);
	getchar();
}

image-20221022210150965

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值