一 交换两实数的整数部分
输入两个正实数,将其整数部分交换后输出,结果保留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;
}