菜鸟编程4
1.首先要想到特殊情况,年分为闰年和平年,闰年的2月有29天
2.当闰年时候,如果输入的月份在2月份之前,那就不应该+1天
总结:有特殊时应该自己模拟一下流程,不要漏掉各种特殊情况
#include<stdio.h>
int main(){
int year;
int moon;
int date;
int i=1;
int sum;
scanf("%d,%d,%d",&year,&moon,&date);
switch(moon){
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=303;break;
case 12:sum=334;break;
default:printf("date error");break;
}
sum+=date;
if(year%4==0){ //这部分是判断闰年时,需不需要加一天
if(moon<=2){
sum=sum;
}else if(moon>2){
sum+=1;
}
}
printf("天数为:%d",sum);
}
菜鸟编程5:
交换3个数
1.本质是移动数字,将最小的放在x位上,所以只需要一点一点判断谁是最小的
2.需要用到一个容器装数字,进行交换
我的错误想法:
给每个数字标上序号,通过比较得他们的大小,其实完全可以直接通过一个一个交换做到从小到大排序(因为if运算有顺序,t可重复利用)
#include<stdio.h>
int main(){
int x,y,z,t;
printf("请输入3个数:");
scanf("%d %d %d",&x,&y,&z);
if(x>y){
t=x,x=y,y=t; //注意交换时候的逻辑//
} //先取一个容器t装一个值,再令y=x,最后把x赋予t的值//
if(x>z){
t=z,z=x,x=t;
}
if(y>z){
t=y,y=z,z=t;
}
printf("从小到大为:%d %d %d",x,y,z);
}