寒假集训开始学习C++,用C++实现了杭电oj上2000-2009的题目。
#include
using namespace std;
int main()
{
char str[3],temp;
while(cin>>str)
{
if(str[0]>str[1])
{
temp=str[0],str[0]=str[1],str[1]=temp;
}
if(str[0]>str[2])
{
temp=str[0],str[0]=str[2],str[2]=temp;
}
if(str[1]>str[2])
{
temp=str[1],str[1]=str[2],str[2]=temp;
}
cout<<str[0]<<" "<<str[1]<<" "<<str[2]<<endl;
}
return 0;
}
注意是定义字符,输出时要有空格。
#include
#include
#include
using namespace std;
int main()
{
double x1,x2,y1,y2,x;
while(cin>>x1>>y1>>x2>>y2)
{
x=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
cout<<fixed<<setprecision(2)<<x<<endl;
}
return 0;
}
结果要保留两位小数。此时就需要用到:
#include //setiosflags(ios::fixed),头文件为:include
cout<<fixed<<setprecision(2)<<x<<endl;//setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。
#include
#include //setiosflags(ios::fixed),头文件为:include
#define pi 3.1415927
using namespace std;
int main()
{
double v,r;
while(cin>>r)
{
v=pi*r*r*r*4/3;
cout<<setiosflags(ios::fixed)<<setprecision(3)<<v<<endl;//setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。
}
return 0;
}
注意结果保留3位小数。
#include
#include
using namespace std;
int main()
{
double n;
while(cin>>n)
{
if(n>0)
{
cout<<fixed<<setprecision(2)<<n<<endl;
}
else
cout<<fixed<<setprecision(2)<<-n<<endl;
}
return 0;
}
#include
using namespace std;
int main()
{
int a;
while(cin>>a)
{
if(a>=90&&a<=100)
{
cout<<'A'<<endl;
}
else if(a>=80&&a<=89)
{
cout<<'B'<<endl;
}
else if(a>=70&&a<=79)
{
cout<<'C'<<endl;
}
else if(a>=60&&a<=69)
{
cout<<'D'<<endl;
}
else if(a>=0&&a<=59)
{
cout<<'E'<<endl;
}
else cout<<"Score is error!"<<endl;
}
return 0;
}
#include
using namespace std;
int main()
{
int y,m,d,i,s;
while(cin>>y)
{
s=0;
int t1[12]={
31,28,31,30,31,30,31,31,30,31,30,31};
int t2[12]={
31,29,31,30,31,30,31,31,30,31,30,31};
cin.ignore();
cin>>m;
cin.ignore();
cin>>d;
if((y%400==0)||((y%100!=0)&&(y%4==0)))
{
for(i=0;i<m-1;i++)
{
s=s+t2[i];
}
s=s+d;
}
else
{
for(i=0;i<m-1;i++)
{
s=s+t1[i];
}
s=s+d;
}
cout<<s<<endl;
}
return 0;
}
注意
要判断是不是闰年,闰年的2月份是29天。
cin.ignore();
cin.ignore();的作用是消除输入中的1985/1/20中的斜杠。
#include
using namespace std;
int main()
{
int n,m,sum;
while(cin>>n)
{
sum=1;
for(int i=0;i<n;i++)
{
cin>>m;
if(m%2!=0)
{
sum=sum*m;
}
}
cout<<sum<<endl;
}
return 0;
}
#include
using namespace std;
int main()
{
int n,m,x,y,i;
while(cin>>m>>n)
{
x=0,y=0;
if(m>n)//比较n m的大小。
{
i=m,m=n,n=i;
}
for(;m<=n;m++)
{
if(m%2==0)
{
x=x+m*m;
}
else y=y+m*m*m;
}
cout<<x<<" "<<y<<endl;
}
return 0;
}
注意要比较m和n的大小。
杭电oj2008 数值统计 C++实现
#include
using namespace std;
int main()
{
int n;
while(cin>>n)
{
if(n==0)
{
break;
}
double a=0,b=0,c=0,i=0,x;
while(cin>>x)
{
i++;
if(x<0)
{
a++;
}
if(x==0)
{
b++;
}
if(x>0)
{
c++;
}
if(i==n)
{
break;
}
}
cout<<a<<" "<<b<<" "<<c<<endl;
}
return 0;
}
注意输出中的空格。
#include
#include
#include
using namespace std;
int main()
{
int n,m;
while(cin>>n>>m)
{
double b,sum=0;
b=n,sum=n;
for(int i=1;i<m;i++)
{
b=sqrt(b);
sum=sum+b;
}
cout<<fixed<<setprecision(2)<<sum<<endl;
}
return 0;
}
注意结果要求保留小数点后两位。