hdu2004成绩转换已AC代码,如下:
#include<stdio.h> int main() { int n; while(scanf("%d",&n)!=EOF) { if(n<0||n>100) printf("Score is error! "); else if(n<=100&&n>=90) printf("A "); else if(n<=89&&n>=80) printf("B "); else if(n<=79&&n>=70) printf("C "); else if(n<=69&&n>=60) printf("D "); else if(n<=59&&n>=0) printf("E "); } return 0; }
我还用switch编写了一个,也已AC,如下:
#include<stdio.h> int main() { int n; while(scanf("%d",&n)!=EOF) { if(n==100) printf("A "); else if(n<0) printf("Score is error! "); else { switch(n/10) { case 0: ; case 1: ; case 2: ; case 3: ; case 4: ; case 5: printf("E ");break; case 6: printf("D ");break; case 7: printf("C ");break; case 8: printf("B ");break; case 9: printf("A ");break; default:printf("Score is error! "); } } } return 0; }
接下来是hdu2007平方和立方和,代码如下:
#include<stdio.h> int main() { long int x,y; while(scanf("%ld %ld",&x,&y)!=EOF) { long i,t,m=0,n=0; if(x>y){ t=x;x=y;y=t;} for(i=x;i<=y;i++) { if(i%2==0) m+=i*i; else if(i%2==1) n+=i*i*i; } printf("%ld %ld ",m,n); } return 0; }
做这两道题的时候,第一道我做过,就是用已经AC的那种方法,但是我感觉那样麻烦,所以试着用switch做,考虑到-9到-1和101到109会影响结果,所以我就单独列出。第二道虽说不是很难,但是我第一次没能AC ,因为我把!=EOF省去了,但结果是时间超出限制,所以编程就是要一丝不苟,虽说要想办法简化代码,但有些东西是真的不能随便简化,否则就会出现意想不到的后果。