第一階段補題報告
阿新 • • 發佈:2021-10-26
一、求某月的天數
錯因: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 }