7-4 求某月的天数 (20 分)
#include <stdio.h> int main() { int year,month; scanf("%d %d\n",&year,&month); if(month!=2){ if(month==1||3||5||7||8||10||12){ printf("31\n"); }else{ printf("30\n"); } }else if(month==2){ if(year%400==0){ printf("29"); }if(year%100!=0){ if(year%4==0){ printf("29"); }else{ printf("28"); } } } return 0; }
有多处明显错误,且程序复杂。
改正后
#include <stdio.h> int main() { int year,month,day; while(scanf("%d %d",&year,&month)!=EOF){ switch(month) { case 1:day=31;break; case 2:day=28;break; case 3:day=31;break; case 4:day=30;break; case 5:day=31;break; case 6:day=30;break; case 7:day=31;break; case 8:day=31;break; case 9:day=30;break; case 10:day=31;break; case 11:day=30;break; default:day=31;break; } if(year%4==0&&year%100!=0&&month==2||year%400==0) day=day+1; printf("%d\n",day); } return 0; }
7-5 位运算应用 (20 分)
#include <stdio.h> int main() {int ua,ub,uc,tag; scanf("%d %d %d\n%d",&ua,&ub,&uc,&tag); if(tag>95||tag<0){ printf("Error"); }else{ printf("ua=%d,ub=%d,uc=%d",ua,ub,uc); } return 0; }
这题的位运算是真不懂,就把该拿的分拿了
R7-6 交替字符倒三角形 (20 分)
STSTS STS S STSTSTSTSTSTSTSTSTS STSTSTSTSTSTSTSTS STSTSTSTSTSTSTS STSTSTSTSTSTS STSTSTSTSTS STSTSTSTS STSTSTS STSTS STS S
改正后
#include <stdio.h> int main() { int n,i,j=1,y,h; char ch; while(scanf("%d %c",&n,&ch)!=EOF){ y=n-17; for(i=3;i>=1;i--){ for(h=3-i;h>0;h--){ printf(" "); } for(j=1;j<=2*i-1;j++){ printf("%c",ch); } printf("\n"); } for(i=2;i<=3;i++){ for(h=3-i;h>0;h--){ printf(" "); } for(j=1;j<=2*i-1;j++){ printf("%c",ch); } printf("\n"); } if(y>0){printf("%d",y);} } return 0; }
总结就是循环部分还没吃透,而后面的部分也完全理解