ACM2专题二

专题二 – 选择结构设计 (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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值