首页 > 代码库 > [C]Week 2 判断

[C]Week 2 判断

  • if-else
  1. 计算时间差
    技术分享
     1 int main(){ 2     int hour1, minute1; 3     int hour2, minute2; 4      5     scanf("%d %d",&hour1,minute1); 6     scanf("%d %d",&hour2,minute2); 7      8     //int t1= hour1*60 +minute1; 9     //int t2= hour2*60 +minute2;10     11     //int t= t2- t1;12     13     int ih = hour2- hour1;14     int im= minute2 - minute1;15     if (im<0){16         im=60 +im;17         ih--;18     }19     //printf("时间差是%d小时%d分",t/60,t%60);20     printf("时间差是%d小时%d分",ih,im);21     return 0;22 } 
    View Code
  2. 三个数比较大小
    技术分享
     1 int main(){ 2     int a, b, c; 3      4     scanf(" %d %d %d",&a,&b,&c); 5     int max=0; 6      7     if (a>b){ 8         if (a>c){ 9             max=a;10         }else{11             max=c;12         }13     }else{14         if (b>c){15             max=b;16         }else{17             max=c;18         }19     }printf("the max is %d",max);20     return 0;21 }
    View Code

     

  • switch-case
  • HW
  1. UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示 分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如1124表示11 点24分,而905表示9点5分,36表示0点36分,7表示0点7分。

    有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据。

    你的程序要输出这个时间对应的UTC时间,输出的格式和输入的相同,即输出一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。

    提醒:要小心跨日的换算。

     

    输入格式:

    一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。

     

    输出格式:

    一个整数,表示UTC的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。

     

    输入样例:

    903

     

    输出样例:

    103

    技术分享
     1 # include <stdio.h> 2  3 int main() 4  5 { 6      7     int btime, bhour, bmin, umin,uhour=0; 8      9     scanf("%d",&btime);10     11     if(btime>=0 && btime<=2359){12         if(btime%100<60){13             if((btime/100)<8){14                 /*if(btime%100>=10){15                     bmin=btime%100;16                     bhour=btime/100;17                     uhour=((bhour-8)+24);18                     umin=bmin;19                     printf("%d%d",uhour,umin);    20                 }21                 else if(btime%100<10) */22                 {23                     bmin=btime%100;24                     bhour=btime/100;25                     uhour=((bhour-8)+24);26                     umin=bmin;27                     printf("%d",((uhour*100)+umin));28                 }29             }    30             else if((btime/100)>=8){31                 /*if(btime%100>=10){32                     bmin=btime%100;33                     bhour=btime/100;34                     uhour=(bhour-8);35                     umin=bmin;36                     printf("%d%d",uhour,umin);    37                 }38                 else if(btime%100<10) */39                 {40                     bmin=btime%100;41                     bhour=btime/100;42                     uhour=(bhour-8);43                     umin=bmin;44                     printf("%d",((uhour*100)+umin));45                 }46             }    47            /* else if((btime/100)==8){48                 bmin=btime%100;49                 bhour=btime/100;50                 umin=bmin;51                 printf("%d",umin);52             };*/53             54         };55         56     }57         58     59     60     else 61     62     63         return 0 ;64 65 }66     
    View Code

     

  2. 无线电台的RS制信号报告是由三两个部分组成的:

    R(Readability) 信号可辨度即清晰度.

    S(Strength)    信号强度即大小.

    其中R位于报告第一位,共分5级,用1—5数字表示.

    • 1---Unreadable

    • 2---Barely readable, occasional words distinguishable

    • 3---Readable with considerable difficulty

    • 4---Readable with practically no difficulty

    • 5---Perfectly readable

    报告第二位是S,共分九个级别,用1—9中的一位数字表示

    • 1---Faint signals, barely perceptible

    • 2---Very weak signals

    • 3---Weak signals

    • 4---Fair signals

    • 5---Fairly good signals

    • 6---Good signals

    • 7---Moderately strong signals

    • 8---Strong signals

    • 9---Extremely strong signals

    现在,你的程序要读入一个信号报告的数字,然后输出对应的含义。如读到59,则输出:Extremely strong signals, perfectly readable.

    输入格式:

    一个整数,信号报告。整数的十位部分表示可辨度,个位部分表示强度。输入的整数范围是[11,59],这个范围外的数字不可能出现在测试数据中。

     

    输出格式:

    一句话,表示这个信号报告的意义。按照题目中的文字,先输出表示强度的文字,跟上逗号和空格,然后是表示可辨度的文字,跟上句号。注意可辨度的句子的第一个字母是小写的。注意这里的标点符号都是英文的。

     

    输入样例:

    33

     

    输出样例:Weak signals, readable with considerable difficulty.

    技术分享
     1 # include <stdio.h> 2  3 int main() 4  5 { 6     int num=0; 7  8  9     10     scanf("%d",&num);11     if (num/10<=5 && num/10>=1)12      if(num%10<=9 && num%10>=1){13 14     15         switch(num%10){16         case 1:17             printf("Faint signals, barely perceptible,");18                 break;19         case 2:20             printf("Very weak signals,");21                 break;22         case 3:23             printf("Weak signals,");24                 break;25         case 4:26             printf("Fair signals,");27                 break;28         case 5:29             printf("Fairly good signals,");30                 break;31         case 6:32             printf("Good signals,");33                 break;34         case 7:35             printf("Moderately strong signals,");36                 break;37         case 8:38             printf("Strong signals,");39                 break;40         case 9:41             printf("Extremely strong signals,");42                 break;43     } ;44     45     switch(num/10){46         case 1:47             printf(" unreadable.");48             break;49         case 2:50             printf(" barely readable, occasional words distinguishable.");51             break;52         case 3:53             printf(" readable with considerable difficulty.");54                 break;55         case 4:56             printf(" readable with practically no difficulty.");57                 break;58         case 5:59             printf(" perfectly readable.");60                 break;61     }62     63     64 65 }66 67 else    68 return 0;69 } 
    View Code

     

     

[C]Week 2 判断