2015-3-26C语言学习日记
来源:互联网 发布:windows图形编程pdf 编辑:程序博客网 时间:2024/05/21 01:56
记录两个比较有趣但是又想不到怎么做的题
1)。输入三个数得到从小到大的排列
我的代码
他人的代码
intx,y,z,first,seond,third;
printf("请输入三个整数:");
scanf("%d%d%d",&x,&y,&z);
if(x<=y)
{
if(z>=y)
{
first=x;seond=y;third=z;
}
else//z<y
{
if(z>=x)
{
first=x;seond=z;third=y;
}
else//z<x
{
first=z;seond=x;third=y;
}
}
}
else//x>y
{
if(z<=y)
{
first=z;seond=y;third=x;
}
else//z>y
{
if(z>=x)
{
first=y;seond=x;third=z;
}
else//z<x
{
first=y;seond=z;third=x;
}
}
}
printf("从小到大的顺序是:%d,%d,%d\n",first,seond,third);
int num1,num2,num3,temp;
printf("请输入三个数字:");
scanf("%d%d%d",&num1,&num2,&num3);
if(num1>num2)
{
temp=num2;
num2=num1;
num1=temp;
//保证num1<num2
}
if(num1>num3)
{
temp=num3;
num3=num1;
num1=temp;
//保证num1<num3
}
if(num2>num3)
{
temp=num2;
num2=num3;
num3=temp;
//保证num2<num3
}
printf("%d<=%d<=%d\n",num1,num2,num3);
我的代码不是很整齐,并且容易出错,但是他人的做法就比较整齐,容易理解,不易出错。
2)。求某年某月某日是这一年的第几天
我的代码
他人的代码
intyear,month,day,dayth,isRunNian=0;
printf("请输入年月日:");
scanf("%d%d%d",&year,&month,&day);
if(year/4==0)
{
if(year%100==0)
{
isRunNian=year%400==0;
}
else
{
isRunNian=1;
}
}
switch (month) {
case1://1月
dayth=day;
break;
case2://2月
dayth=31+day;
break;
case3://3月
dayth=31+28+day;
break;
case4://4月
dayth=31+28+31+day;
break;
case5://5月
dayth=31+28+31+30+day;
break;
case6://6月
dayth=31+28+31+30+31+day;
break;
case7://7月
dayth=31+28+31+30+31+30+day;
break;
case8://8月
dayth=31+28+31+30+31+30+31+day;
break;
case9://9月
dayth=31+28+31+30+31+30+31+30+day;
break;
case10://10月
dayth=31+28+31+30+31+30+31+30+31+day;
break;
case11://11月
dayth=31+28+31+30+31+30+31+30+31+30+day;
break;
case12://12月
dayth=31+28+31+30+31+30+31+30+31+30+31+day;
break;
default:
printf("月份输入出错!\n");
break;
}
if(isRunNian&&month>2)//如果是闰年,并且月份大于2,则计算天数的会多一天
{
dayth++;
}
printf("这一天是这一年的第%d天\n",dayth);
int year=0,month=0,day=0,days=0;
scanf("%d%d%d",&year,&month,&day);
switch (month)
{
case12:
days +=30;
case11:
days +=31;
case10:
days +=30;
case9:
days +=31;
case8:
days +=31;
case7:
days +=30;
case6:
days +=31;
case5:
days +=30;
case4:
days +=31;
case3:
days +=28;
case2:
days +=31;
case1:
days +=day;
}
if (year%400==0||((year%4==0)&&(year%100!=0)))
{
if (month>2)
{
days +=1;
}
}
printf("%d",days);
其实这段代码在刚开始谢了这么多的一样的数据的时候就应该嗅到了坏的味道,但是还是因为自己的一些坏习惯,导致写出了这样的代码,检讨检讨!
易错点:
int a=1;
switch(a)
{
case 1:{}
default:{}//default可以不写break 但是必须加上结束的语句,例如{}或者‘分号’
}
- 2015-3-26C语言学习日记
- 2015-3-23C语言学习日记
- 2015-3-24C语言学习日记
- 2015-3-25C语言学习日记
- 2015-3-27C语言学习日记
- 2015-3-30C语言学习日记
- 2015-3-31C语言学习日记
- 2015-4-3C语言学习日记
- 2015-4-1C语言学习日记
- 2015-4-2C语言学习日记
- 2015-4-7C语言学习日记
- 090904c语言学习日记
- 090906c语言学习日记
- 090907c语言学习日记
- 090909c语言学习日记
- 学习日记-C语言数据类型
- C语言学习日记01
- C语言学习日记02
- 分布式系统中进程通信的理解
- 6.时光机穿梭
- 如何在mac本上安装android sdk
- 《c primer plus》编程练习回顾-第十章
- 集中式vs分布式
- 2015-3-26C语言学习日记
- Python进阶(三)
- [Python]网络爬虫(12):爬虫框架Scrapy的第一个爬虫示例入门教程
- 6、NSNotificationCenter使用
- gcov 用法
- cocos3.4 改变窗口大小
- 7.版本回退
- 8.工作区和暂存区
- Dubbo抛出自定义异常