C语言经典习题2

本文介绍了使用C语言实现的三个编程任务:交换两个正实数的整数部分,判断闰年条件,以及计算任意天数后是星期几。展示了如何使用强制类型转换、条件语句和逻辑运算符进行日期和逻辑操作。
摘要由CSDN通过智能技术生成

一 交换两实数的整数部分

输入两个正实数,将其整数部分交换后输出,结果保留2位小数。

#include<stdio.h>
int main(){
	float A,B;
	scanf("%f %f",&A,&B);
	int a=A;  //强制类型转换获得A的整数部分并赋给a
	int b=B;  //强制类型转换获得B的整数部分并赋给b
    
    float a1=A-a;  //获得A的小数部分
    float b1=B-b;  //获得B的小数部分
    float a2=b+a1;
    float b2=a+b1;
    printf("%.2f,%.2f",a2,b2);  //注意保留两位小数
    return 0;

}

二 闰年的判断

输入一个年份,判断其是否为闰年,是闰年输出True,不是闰年输出False。闰年的判断条件:年号能被4整除,但不能被100整除;或者能被400整除。

#include<stdio.h>
int main(){
	int year;
	scanf("%d",&year);
	if((year%4==0&&year%100!=0)||year%400==0){
		printf("True");
	}else{
		printf("False");
	}
	return 0;
}

 &&逻辑与 (两边的表达式同时为真该逻辑表达式才为真)  ||逻辑或(两边的表达式至少有一个为真该逻辑表达式才为真)

三 星期几的换算问题

今天是周六,又到了可以休息的日子了,7天后又会是一个周六。请你帮忙计算下,n(n为整数,可以是正也可以为负)天后会是星期几呢?

#include<stdio.h>
int main(){
	int n;
	int a;
	scanf("%d",&n);
	if(n>0){
		a=n%7;		

	switch(a){
		case 0:
		   printf("星期六");
		   break; 
		case 1:
		   printf("星期日");
		   break; 
		case 2:
		   printf("星期一");
		   break; 
		case 3:
		   printf("星期二");
		   break;    	
	    case 4:
		   printf("星期三");
		   break; 
		case 5:
		   printf("星期四");
		   break; 
		case 6:
		   printf("星期五");
		   break; 
	}
}
else{
	a=(-n)%7;
		switch(a){
		case 0:
		   printf("星期六");
		   break; 
		case 1:
		   printf("星期五");
		   break; 
		case 2:
		   printf("星期四");
		   break; 
		case 3:
		   printf("星期三");
		   break;    	
	    case 4:
		   printf("星期二");
		   break; 
		case 5:
		   printf("星期一");
		   break; 
		case 6:
		   printf("星期日");
		   break; 
	}
	
}
return 0; 
}

当用户输入一个正数表示我们要向后来推算星期几,当用户输入的是负数表示我们要向前来推算,我们可以利用switch case语句的特征(switch语句的执行过程,首先计算表达式的值,并逐个于其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时则执行其后的语句,直到遇到break语句)来简化我们的代码

#include<stdio.h>
int main(){
	int n;
	int a;
	scanf("%d",&n);
	a=n%7;		
	switch(a){
		case 0:
		   printf("星期六");
		   break; 
		case 1:
		case -6:
		   printf("星期日");
		   break; 
		case 2:
		case -5:
		   printf("星期一");
		   break; 
		case 3:
		case -4:
		   printf("星期二");
		   break;    	
	    case 4:
	    case -3:
		   printf("星期三");
		   break; 
		case 5:
		case -2:
		   printf("星期四");
		   break; 
		case 6:
		case -1:
		   printf("星期五");
		   break; 
	}
return 0; 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值