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

浙公网安备 33010602011771号