当前位置: 代码迷 >> 综合 >> 杭电OJ100题——2002-2005(C++版)
  详细解决方案

杭电OJ100题——2002-2005(C++版)

热度:1   发布时间:2023-12-15 13:37:58.0

计算球体积

Problem Description

根据输入的半径值,计算球的体积。

 Input

输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。

 Output

输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。

 Sample Input

1 1.5

 Sample Output

4.189 14.137

Hint

#define PI 3.1415927

#include<iostream>
#define PI 3.1415927
#include<cmath>
#include<iomanip>
using namespace std;int main(){double radius,volume;while(cin>>radius){volume = 4*PI*pow(radius,3)/3;cout<<setiosflags(ios::fixed)<<setprecision(3)<<volume<<endl;}
}

 

求绝对值

Problem Description

求实数的绝对值。

 Input

输入数据有多组,每组占一行,每行包含一个实数。

 Output

对于每组输入数据,输出它的绝对值,要求每组数据输出一行,结果保留两位小数。

 Sample Input

123

-234.00

 Sample Output

123.00 
234.00
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;int main(){double num;while(cin>>num){num = fabs(num);cout<<setiosflags(ios::fixed)<<setprecision(2)<<num<<endl;}
}

 

成绩转换

Problem Description

输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:
90~100为A;
80~89为B;
70~79为C;
60~69为D;
0~59为E;

 Input

输入数据有多组,每组占一行,由一个整数组成。

 Output

对于每组输入数据,输出一行。如果输入数据不在0~100范围内,请输出一行:“Score is error!”。

 Sample Input

56 
67 
100 
123

 Sample Output

E 
D 
A 
Score is error!
#include<iostream>
using namespace std;int main(){int t,result;while(cin>>t){result = t/10;if(t>=-9&&t<=-1)result = -1;switch(result){case 10:case 9:cout<<"A"<<endl;break;case 8:cout<<"B"<<endl;break;case 7:cout<<"C"<<endl;break;case 6:cout<<"D"<<endl;break;case 5:case 4:case 3:case 2:case 1:case 0:cout<<"E"<<endl;break;default:cout<<"Score is error!"<<endl;break;}}
}

此题要注意负数,当输入-9以内的数时应进行判断。

第几天?

Problem Description

给定一个日期,输出这个日期是该年的第几天。

 Input

输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。

 Output

对于每组输入数据,输出一行,表示该日期是该年的第几天。

 Sample Input

1985/1/20 
2006/3/12

 Sample Output

20 
71

#include<cstdio>
int main()
{int year,month,day;int days_of_month[12]={31,28,31,30,31,30,31,31,30,31,30,31};while(~scanf("%d/%d/%d",&year,&month,&day)){int sum=0;for(int i=0;i<month-1;i++)sum+=days_of_month[i];if(year%400==0||(year%4==0&&year%100!=0)){if(month>2)sum+=day+1;elsesum+=day;}elsesum+=day;printf("%d\n",sum);}return 0;
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  相关解决方案