pat乙级练习记录-1014

#include <stdio.h>
#include <string.h>
int main(){
    char A[60],B[60],C[60],D[60];
    scanf("%s\n%s\n%s\n%s\n",&A,&B,&C,&D);
    char *week[] = {"MON","TUE","WED","THU","FRI","SAT","SUN"};
    int w,h,m,flag = 0;//flag用来计数
    
    //判断星期几和小时
    for(int i = 0;i <= strlen(A); i++){
       if((A[i] == B[i])&&(A[i]>='A'&&A[i]<='G') && flag == 0){ //注意>=和<=
            w = A[i] - 'A';
            flag = 1;
            continue;
           }
       if(A[i] == B[i] && flag == 1){
            if(A[i] >= '0' && A[i] <= '9'){
                h = A[i]- '0';
              break; //遇到第二个相同字符,立即退出
            }
            if(A[i] >= 'A' && A[i] <= 'N'){
                h = A[i] - 'A' + 10;
               break;
                }
       }
       
    }
   
    //判断分钟
    for(int j = 0;j <= strlen(C); j++){
        if((C[j] >= 'a' && C[j] <= 'z')||(C[j] >= 'A' && C[j] <= 'Z')){
            if(C[j] == D[j]){
            m = j;  
            break;
            }
        }
    }
    
    //输出
    if(h<10&&m<10) printf("%s 0%d:0%d",week[w],h,m);
    else if(h<10)  printf("%s 0%d:%d",week[w],h,m);
	else if(m<10)  printf("%s %d:0%d",week[w],h,m);
	else           printf("%s %d:%d",week[w],h,m);
	return 0;

}

该题也可以利用switch-case语法解决。相对容易。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值