杭电oj2000到2011做题记录(水题)

2000ASCLL码排序

#include<iostream>
using namespace std;
int main(){
char a,b,c;
char temp;
while(cin>>a>>b>>c){
	if(a>b){//a存a b最小的 
	temp=a;
	a=b;
	b=temp;
}
if(a>c){//a和c比较,a存最小的 
	temp=a;
	a=c;
	c=temp;
}
if(b>c){//b和c比较,c存最大的 
	temp=b;
	b=c;
	c=temp;
}
cout<<a<<" "<<b<<" "<<c<<endl; 

}

return 0;
} 
//输入还可以while(scanf("%c%c%c",&a &b &c)!=EOF) 
//这种形式时别忘了吸收回车 
//还可以 char a[3]以字符串形式赋值
//while(scanf("%s",&a)!=EOF) 

2001计算两点间距离
被我弄复杂了。。刚开始PE是因为计算式太长,分成了d3 d4 表示

#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
struct dec{
	double x;
	double y;
};
int main(){
	struct dec d1,d2;
	double d3,d4;
	double d;
	while(cin>>d1.x>>d1.y>>d2.x>>d2.y){
	d3=(d2.x-d1.x)*(d2.x-d1.x);
	d4=(d2.y-d1.y)*(d2.y-d1.y);
	d=sqrt(d3+d4);
	printf("%.2lf\n",d);	
		
	}
	return 0;
}

2002球体积

#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
#define PI 3.1415927//这里不用加分号 
int main(){
	double R;
	double V;
	while(cin>>R){
	double a=pow(R,3);/*pow函数不能直接参与运算 */
	//这里刚开始马虎了a设置成了int导致结果不对 
	V=(4*PI*a)/3;	
	printf("%.3lf\n",V);
	}
	return 0;
}

2003绝对值

//求绝对值
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
	double a;
	while(cin>>a){
		if(a<0)
		a=-a;
		printf("%.2lf\n",a);
	}
	return 0;
} 

2004成绩转换

//成绩转换成等级,if语句有点技巧 
#include<iostream>
using namespace std;
int main(){
	int score;
	while(cin>>score){
     if(score<0||score>100)
       cout<<"Score is error!"<<endl;
       else if(score<60)
       cout<<"E"<<endl;
      else if(score<70)
       cout<<"D"<<endl;
       else if(score<80)
       cout<<"C"<<endl;
       else if(score<90)
       cout<<"B"<<endl;
       else if(score<=100)
       cout<<"A"<<endl;		
	}
	return 0;
}

2005第几天

//注意 每个月天数不一样
/*注意闰年,即要判断石否是闰年 ,可以加一个函数*/
/*对输入有要求最好用scanf 别忘了加头文件*/ 
#include<iostream>
#include<cstdio>
using namespace std;
int run(int n){
  if(n%4==0&&n%100!=0||n%400==0)
    return 1;
  return 0;
} 
int main(){
	int mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int a,b,c;
    while(scanf("%d/%d/%d",&a,&b,&c)!=EOF){
    	int day=0;
    	for(int i=1;i<b;i++){
    		day+=mon[i];
    	}
    	day+=c;//把日期中的天数加上 
    	if(run(a)&&b>2)
    	day+=1;
    	cout<<day<<endl;
    	
    }
	return 0;
} 

2006奇数乘积

#include <iostream>
using namespace std;
int main(){
    int n, a ,mul;
    while(cin>>n){
        mul = 1;//乘积 
        while(n--){
            cin>>a;
            if(a%2!=0){
                mul = mul*a;
            }
        }
        cout<<mul<<endl;
    }

}

2007平方和 立方和

/*这题有个坑,第一次就是因为这个错的!*/
//a可能比b小! 
#include <iostream>
using namespace std;
int main(){
int a,b,i;
while(cin>>a>>b){
	int x=0;
	int y=0;
	if(a>b){
	for(i=b;i<=a;i++){
		if(i%2==0)
		x+=(i*i);
			if(i%2!=0)
		y+=(i*i*i);
	}
	cout<<x<<" "<<y<<endl;
	
	
	} 	
   else{
   	for(i=a;i<=b;i++){
		if(i%2==0)
		x+=(i*i);
			if(i%2!=0)
		y+=(i*i*i);
	}
	cout<<x<<" "<<y<<endl;
   }
	
}
return 0;
} 

2008数值统计


#include <iostream>
using namespace std;
  int main(){
  int n,x,y,z;
      double i;
      while(cin>>n){
          if(n==0)
              break;
             x=0;
             y=0;
             z=0;
             while(n--){
                 cin>>i;
                 if(i<0)
                     x += 1;
                 else if(i==0)
                     y += 1;
                 else if(i>0)
				     z += 1;                    
                 
              }  
             cout<<x<<" "<<y<<" "<<z<<endl;       
         }
         return 0;
     }

2009求数列和

#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;
int main(){
	int n,m;
	while(cin>>n>>m){
		double temp=n;
		double sum=0;
		for(int i=0;i<m;i++){
		  sum+=temp;
		  temp=sqrt(temp);
			
		}
		printf("%.2lf\n",sum);
		
	}
	return 0;
}

2010水仙花

//这题也有坑 输入输出格式的问题!!
//输出空格那里 
#include <iostream>
using namespace std;
int main(){
	int m,n;
	int i,j,k;
	while(cin>>m>>n){
		if(m>n)
		break;
		int h=0;
	  for(int t=m;t<=n;t++){
	  	i=t/100;
	  	j=(t/10)%10;
	  	k=t%10;
	  	if((i*i*i+j*j*j+k*k*k)==t){
	  		h+=1;
	  		if(h==1) 
	  		 cout<<t;
	  		 if(h!=1) 
	  		 cout<<" "<<t;
	  		 
	  	}
	  	
	  }
	  if(h==0)
	  cout<<"no"<<endl;
	  else 
	  cout<<endl;
		
	}
	return 0;
}

2011多项式求和

#include <iostream>
#include <cstdio>
using namespace std;
int main(){
    int n,i;
    double a,sum,j;
    cin>>n;
    while(n--){
         sum = 0;
         cin>>a;
         for(i=1;i<=a;i++){
             if(i%2==0){
                 j = i;
                 sum -= 1/j;
             }else{
                 j = i;
                 sum += 1/j;
           }
         }
         printf("%.2lf\n", sum);
     }
 }
发布了13 篇原创文章 · 获赞 0 · 访问量 209

猜你喜欢

转载自blog.csdn.net/weixin_45191675/article/details/104675149