上午做的两道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省去了,但结果是时间超出限制,所以编程就是要一丝不苟,虽说要想办法简化代码,但有些东西是真的不能随便简化,否则就会出现意想不到的后果。

posted @ 2013-07-26 15:23  王莜轩  阅读(514)  评论(0编辑  收藏  举报