1. 程式人生 > 其它 >第一階段補題報告

第一階段補題報告

一、求某月的天數

錯因:EOF不會使用。

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int y,m;
 5     while(scanf("%d %d",&y,&m)!=EOF){
 6         if(y%400==0||y%4==0&&y%100!=0){
 7             switch(m){
 8                     case(1):case(3):case(5):case(7):case(8):case(10):case(12):{
 9                         printf("
31"); 10 break; 11 } 12 case(2):{ 13 printf("29"); 14 break; 15 } 16 default:{ 17 printf("30"); 18 break
; 19 } 20 } 21 }else{switch(m){ 22 case(1):case(3):case(5):case(7):case(8):case(10):case(12):{ 23 printf("31"); 24 break; 25 } 26 case(2):{ 27 printf("
28"); 28 break; 29 } 30 default:{ 31 printf("30"); 32 break; 33 } 34 } 35 36 } 37 printf("\n"); 38 } 39 return 0; 40 }

二、位運算應用

錯因:位運算的實質不懂

 1 #include<stdio.h>
 2 int main()
 3 {
 4     unsigned int ua,ub,uc;
 5     int tag;
 6     
 7     scanf("%u %u %u",&ua,&ub,&uc);
 8     scanf("%d",&tag);
 9     if(tag<0||tag>95)
10     {
11     printf("Error");
12     }
13     else
14     {
15     switch(tag/32)
16     {
17         case 0:uc|=(unsigned int)1<<tag%32;break; 
18         case 1:ub|=(unsigned int)1<<tag%32;break; 
19         case 2:ua|=(unsigned int)1<<tag%32;break; 
20     }
21     printf("ua=%u,ub=%u,uc=%u",ua,ub,uc);
22     }
23     return 0;
24  }

三、列印沙漏

錯因:EOF不會使用。

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int n;
 5     while(scanf("%d",&n)!=EOF){
 6     
 7     for(int i=1;i<=n;i++){
 8         for(int k=1;k<=i-1;k++){
 9             printf(" ");
10         }
11         for(int j=1;j<=2*n-2*i+1;j++){
12             printf("*");
13         }
14         printf("\n");
15     }
16     for(int i=1;i<n;i++){
17         for(int j=1;j<=n-1-i;j++){
18             printf(" ");
19         }
20         for(int k=1;k<=2*i+1;k++){
21             printf("*");
22         }
23         printf("\n");
24     }}
25     return 0;
26     
27 }