专题二 – 选择结构设计 (16/5+11)
基础 1117 1154 1118 1580 1160 //5
拓展 1148 1153 1190 1202 1119 1133 1158 1177 1183 2732 3102 //11
[1160]输入年月并判断该月有几天
#include<stdio.h>
int main(){
int y,m,day_num; //y代表年份,m代表月份,day_num代表天数
scanf("%d\\%d",&y,&m); //输入年和月!!!!!!!两个\
switch(m){ //判断所在月份的天数
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:day_num=31;break; //1,3,5,7,8,10,12月有31天
case 4:
case 6:
case 9:
case 11:day_num=30;break; //4,6,9,11月有30天
case 2:if(y%4==0&&y%100!=0||y%400==0) day_num=29; //闰年2月29天
else day_num=28;break; //平年2月28天
}
printf("%d",day_num); //输出某年某月天数
return 0;
}
【1133】
#include <stdio.h>
void main()
{
int a,b;
double result;
char c;
scanf("%d%d",&a,&b);
getchar();//注意!!!!!一定要注意scanf遗留回车键在缓冲区的问题
c=getchar();
switch(c)
{
case '+':result=a+b;break;
case '-':result=a-b;break;
case '*':result=a*b;break;
case '/':result=a*1.0/b;break;
}
printf("result=%.2f\n",result);
}
#include<stdio.h>
int main ()
{
int a,b;
char c;
scanf("%d%d%*c%c",&a,&b,&c);
if(c=='+') printf("%d",a+b);
if(c=='-') printf("%d",a-b);
if(c=='*') printf("%d",a*b);
if(c=='/') printf("%d",a/b);
}
【1177】从键盘输入两个时间点(24小时制),输出两个时间点之间的时间间隔,时间间隔用“小时:分钟:秒”表示。
#include<stdio.h>
int main()
{
int h1,h2,m1,m2,s1,s2,a,b,c;
scanf("%d:%d:%d\n",&h1,&m1,&s1);
scanf("%d:%d:%d",&h2,&m2,&s2);
if (h1 * 3600 + m1 * 60 + s1 < h2 * 3600 + m2 * 60 + s2)
{
a = h2 - h1, b = m2 - m1, c = s2 - s1;
if (c < 0)
{
c = 60 + c;
b--;
}
if (b < 0)
{
b = b + 60;
a--;
}
}
else
{
a = h1 - h2, b = m1 - m2, c = s1 - s2;
if (c < 0)
{
c = 60 + c;
b--;
}
if (b < 0)
{
b = b + 60;
a--;
}
}
printf("%02d:%02d:%02d", a, b, c);//2是宽度很简单。如果整数不够2列就补上0
//比如printf("%02d" ,3);结果就是03如果大于2没有影响printf("%02d",1234);1234
return 0;