华为杯山东理工大学第二届团体程序设计天梯赛

7-112-24小时制(15分)编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。输入格式:输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。提示:在scanf的格式字符串中加入:,让scanf来处理这个冒号。输出格式:在一行中输出这个时...
摘要由CSDN通过智能技术生成

7-1 12-24小时制 (15 分)

编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。

输入格式:

输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。

提示:scanf的格式字符串中加入:,让scanf来处理这个冒号。

输出格式:

在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如5:6 PM表示下午5点零6分。注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:0 PM;而0点被认为是第二天的时间,所以是0:0 AM

输入样例:

21:11

输出样例:

9:11 PM
#include <bits/stdc++.h>

using namespace std;

int main()
{
     int M,S;
     while(~scanf("%d:%d",&M,&S))
     {
         if(M<12)
         {
            printf("%d:%d AM\n",M,S);
         }
         else if(M==12)
         {
             printf("%d:%d PM\n",M,S);
         }
         else if(M<23)
         {
             M-=12;
             printf("%d:%d PM\n",M,S);
         }
        
     }
    return 0;
}

 

7-2 日期格式化 (5 分)

世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。

输入格式:

输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。

输出格式:

在一行中按照“yyyy-mm-dd”的格式给出年、月、日。

输入样例:

03-15-2017

输出样例:

2017-03-15

 

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int y,m,d;
    while(~scanf("%d-%d-%d",&y,&m,&d))
    {
        printf("%04d-%02d-%02d\n",d,y,m);
    }

    return 0;
}

7-3 整数的分类处理 (20 分)

给定 N 个正整数,要求你从中得到下列三种计算结果:

  • A1 = 能被 3 整除的最大整数
  • A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数
  • A3 = 存在整数 K 使之可以表示为 3K+2 的所有整数的平均值(精确到小数点后 1 位)

输入格式:

输入首先在第一行给出一个正整数 N,随后一行给出 N 个正整数。所有数字都不超过 100,同行数字以空格分隔。

输出格式:

在一行中顺序输出 A1、A2、A3的值,其间以 1 个空格分隔。如果某个数字不存在,则对应输出NONE

输入样例 1:

8
5 8 7 6 9 1 3 10

输出样例 1:

9 3 6.5

输入样例 2:

8
15 18 7 6 9 1 3 10

输出样例 2:

18 3 NONE
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int A1,A2,num2,num3;
    double A3;
    int x;
    int n;
    while(cin>>n)
    {
        A1=0;
        num2=0;
        num3=0;
        A3=0;
       for(int i=0;i<n;i++)
       {
           scanf("%d",&x);
           if(x%3==0)
           {
               A1=max(A1,x);
           }
           else if(x%3==1)
           {
                num2++;
           }
           else
           {
               num3++;
               A3+=x;
           }
       }
       if(A1!=0)
       {
           printf("%d",A1);
           
       }
       else
       {
           printf("N
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值