初学C语言,也遇到了不少困难;老师不让我们初学者钻牛角尖的初衷是好的,但是毕竟是男人嘛!都有不服输的性格;而且钻钻牛角尖,也未尝不是一件好事。。下面是今天作业最难的两道题,其实严格来说,这两道题也就是一道题
//1.请用户输入1个年份,判断用户输入的年份是否为闰年,如果是闰年就显示"是闰年",否则就显示"不是闰年".
//满足下面两个条件之一的年份就是闰年
//-> 年份能够被400整除.
//-> 年份能够被4整除但是不能被100整除.
//第一种解题方法:理解难度 一般
#include <stdio.h>
int main(){
printf("请输入一个年份\n");
int n;
scanf("%d",&n);
if (n % 400==0 || (n %4 ==0 && n %100 != 0))
{
printf("是闰年\n");
}
else
printf("不是闰年\n");
return 0;
}
//第二种解题方法:理解难度简单,较繁琐
#include <stdio.h>
int main()
{
printf("请输入一个年份.\n");
// 年份为n;
int n;
scanf("%d",&n);
// 年份为n;
// 或者,如果n取余4==0,n就是闰年;
// 其他的,都不是闰年
// 如果n取余400==0,那就打印n年是闰年;
if (n % 400 ==0) {
printf("%d年是闰年\n",n);
//如果n取余100==0,那就打印n不是闰年
}else if (n %100 == 0){
printf("%d年不是闰年\n",n);
}
//如果n取余4 == 0,那就打印n是闰年
else if(n %4 == 0){
printf("%d年是闰年\n",n);
}
//其他的年份都不是闰年
else
printf("%d年不是闰年\n",n);
return 0;
}
//2.请用户输入1个年份,再输入1个月份,显示这1年的这1月有多少天.
//提示:
//1、3、5、7、8、10、12月份,无论是那个年份都有31天.
//4、6、9、11月份,无论是那个年份,都是30天.
//如果是2月份,年份是闰年的话那么就有29天否则就是28天.
//第一种解题方法----代码:简洁;理解难度----一般;
#include <stdio.h>
int main(){
printf("请输入一个年份\n");
//年份
int n;
scanf("%d",&n);
printf("请输入一个月份\n");
//年份
int y;
scanf("%d",&y);
//如果月份小于1,或者大于十二,就打印输入的月份错误
if (y<1 || y>12) {
printf("您输入的月份错误\n");
}
//如果y = 1,3,5,7,8,10,12
if (y==1 || y==3 || y==5 || y==7 || y==8 || y==10 || y==12) {
//打印x年x月有31天
printf("%d年%d月有31天\n",n,y);
//还有,如果y = 4,6,9,11
}else if(y==4 || y==6 || y==9 || y==11){
//打印x年x月有30天
printf("%d年%d月有30天\n",n,y);
}else if (y ==2){
//如果n能被400整除;或者n能被4整除,并且n不能被100整除;能满足这两个条件的其中一个,就是闰年
if (n % 400==0 || (n %4 ==0 && n %100 != 0))
{//打印闰年的2月有29天
printf("%d年%d月有29天\n",n,y);
}
//打印不是闰年的二月有28天
else{
printf("%d年%d月有28天\n",n,y);
}
}
return 0;
}
//第二种解题方法:理解简单,相当繁琐,重复
#include <stdio.h>
int main(){
//年份
int n;
//月份
int y;
printf("请输入年份\n");
scanf("%d",&n);
printf("请输入月份\n");
scanf("%d",&y);
if (y == 1 ) {
printf("%d年%d月有31天",n,y);
}
else if (y ==3 ) {
printf("%d年%d月有31天",n,y);
}
else if (y ==5 ) {
printf("%d年%d月有31天",n,y);
}
else if (y ==7 ) {
printf("%d年%d月有31天",n,y);
}
else if (y ==8 ) {
printf("%d年%d月有31天",n,y);
}
else if (y ==10 ) {
printf("%d年%d月有31天",n,y);
}else if (y ==12 ) {
printf("%d年%d月有31天",n,y);
}
else if (y ==4 ) {
printf("%d年%d月有30天",n,y);
}
else if (y ==6 ) {
printf("%d年%d月有30天",n,y);
}
else if (y ==9 ) {
printf("%d年%d月有30天",n,y);
}
else if (y ==11 ) {
printf("%d年%d月有30天",n,y);
}
else if (y ==2 ) {
if (n % 400 ==0) {
printf("%d年%d月有29天",n,y);
}else if (n %100 == 0){
printf("%d年%d月有28天",n,y);
}
else if(n %4 == 0){
printf("%d年%d月有29天",n,y);
}else
printf("%d年%d月有28天",n,y);
}
else
printf("您输入的月份有误\n");
return 0;
}