- 【描述】
晶晶的朋友贝贝约晶晶下周一起去看展览,但晶晶每周的1、3、5必须上课,请帮晶晶判断她能否接受贝贝的邀请,如果能输出YES;如果不能则输出NO。
【输入】
输入贝贝邀请晶晶去看展览的日期,用数字1到7表示从星期一到星期日。
【输出】
如果晶晶可以接受贝贝的邀请,输出YES,否则,输出NO。注意YES和NO都大写!
【输入示例】
2
【输出示例】
YES
(10分) 我的答案:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
int n;
cin >> n;
switch (n) {
case 2:
case 4:
case 6:
case 7:
cout << "YES" << endl;
break;
case 1:
case 3:
case 5:
cout << "NO" << endl;
break;
default:
cout << "非法输入\n";
}
return 0;
}
- 【描述】
输入a、b和c,若它们能构成三角形,则输出三角形周长,否则输出“Invalid”。
【输入】
输入a、b和c。
【输出】
输出三角形周长或“Invalid”。
【输入示例1】
1 2 3
【输出示例1】
Invalid
【输入示例2】
3 3 3
【输出示例2】
9
(10分) 我的答案:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
double a,b,c,C;
cin >> a>>b>>c;
if(a+b>c && a+c>b && b+c>a)
cout<<a+b+c<<endl;
else
cout<<"Invalid"<<endl;
return 0;
}
- 【描述】
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
【输入】
输入n,x和y(均为整数),以整数间隔。
【输出】
输出完整的苹果数(整数)。
【输入示例】
10 4 9
【输出示例】
7
(10分) 我的答案:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
int n,x,y,p;
cin>>n>>x>>y;
p=ceil(y*1.0/x);
if(p>=n)
cout<<"0"<<endl;
else
cout<<n-p<<endl;
//cout<<n-ceil(y*1.0/x)<<endl;
return 0;
}
- 【描述】
编写程序,将输入的任意3个整数从小到大输出,其间以"->"相连。
【输入】
一行中输入三个整数,其间以空格间隔。
【输出】
一行中将三个整数从小到大输出,其间以"->"相连。
【输入示例】
4 2 8
【输出示例】
2->4->8
(10分) 我的答案:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
void swap(int *x, int *y) {
int temp;
temp = *y;
*y = *x;
*x = temp;
}
int main() {
int a, b, c;
cin >> a >> b >> c;
if (a > b)
swap(a, b);
if (b > c)
swap(b, c);
if (a > b)
swap(a, b);
cout << a << "->" << b << "->" << c << endl;
return 0;
}
-
【描述】
某电网执行“阶梯电价”,居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。结果保留2位小数。
【输入】
一行中输入用电量。
【输出】
一行中输出电费。
【输入示例】
100
【输出示例】
cost = 55.50
(10分) 我的答案:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
double n, cost;
cin >> n;
if (n <= 50)
cost = n * 0.53;
else
cost = 50 * 0.53 + (n - 50) * (0.53 + 0.05);
cout << "cost = " << fixed << setprecision(2) << cost << endl;
return 0;
}
- 【描述】
输入一个整数,输出分段函数的值。分段函数的数学定义如下:
![](https://img-blog.csdnimg.cn/e710a839196245f9b1302ed921decf6a.png)
【输入】
输入一个整数。
【输出】
输出分段函数的值。
【输入示例】
100
【输出示例】
10005
我的答案:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
int x, fx;
cin >> x;
if (x < 0)
fx = x + 1;
else if (x >= 0 && x < 100)
fx = x * x * x;
else if (x >= 100)
fx = x * x + 5;
cout << fx << endl;
return 0;
}
- 【描述】
某校学生成绩的绩点计算方法如下(百分制折合为绩点):
(A)90~100分,折合4.0~5.0绩点。
(B)80~89分,折合3.0~3.9绩点。
(C)70~79分,折合2.0~2.9绩点。
(D)60~69分,折合1.0~1.9绩点。
(E)59分及其以下为不及格。
【输入】
输入一个整数表示学生的成绩(0~100)。
【输出】
如果输入的学生成绩不合法,则输出“Invalid”。
如果输入的学生成绩为不及格,则输出“Failed”。
否则,输出成绩对应的绩点,结果保留一位小数。
【输入示例】
74
【输出示例】
2.4
(10分) 我的答案:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
int n;
double grade;
cin >> n;
if (n >= 60 && n <= 100) {
grade = (n - 50) / 10.0;
cout << fixed << setprecision(1) << grade << endl;
} else if (n > 0 && n < 60)
cout << "Failed" << endl;
else
cout << "Invalid" << endl;
return 0;
}
- 【描述】
编写程序,输入三角形三条边a、b和c(假设为实数),判断它们能否构成三角形。若不能构成三角形,则输出“Don't make a triangle”;若能构成三角形,进一步判断是何种三角形(等边三角形、等腰三角形、直角三角形、等腰直角三角形还是一般三角形等),并输出相应的信息(Equilateral triangle、Isosceles triangle、Right triangle、Isosceles Right triangle、General triangle)。
【输入】
三角形三条边a、b和c,以空格间隔。
【输出】
若不能构成三角形,输出“Don't make a triangle”。否则输出相应的三角形类型信息。
【输入示例1】
1 2 3
【输出示例1】
Don't make a triangle
【输入示例2】
4 2 5
【输出示例2】
General triangle
【提示】
可以利用勾股定理逆定理判断直角三角形。
应该避免直接对浮点数进行相等(==)比较,因为浮点数的误差可能造成两个本来应该相等的浮点数不相等。
(10分) 我的答案:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
double a, b, c;
const double EPSILON = 0.0000001;
cin >> a >> b >> c;
if (a + b > c && a + c > b && b + c > a) {
if (fabs(a - b) <= EPSILON && fabs(a - c) <= EPSILON && fabs(b - c) <= EPSILON) {
cout << "Equilateral triangle" << endl;
} else if (fabs(a - b) <= EPSILON || fabs(a - c) <= EPSILON || fabs(b - c) <= EPSILON) {
if (fabs(a - b) <= EPSILON || fabs(a - c) <= EPSILON || fabs(b - c) <= EPSILON) {
cout << "lsosceles Right triangle" << endl;
} else
cout << "lsosceles triangle" << endl;
} else if (fabs(a * a + b * b - c * c) <= EPSILON || fabs(a * a + c * c - b * b) <= EPSILON
|| fabs(c * c + b * b - a * a) <= EPSILON) {
cout << "Right triangle" << endl;
} else
cout << "General triangle" << endl;
} else
cout << "Don't make a triangle" << endl;
return 0;
}
- 【描述】
求一元二次方程
![](https://img-blog.csdnimg.cn/c5726b50700149d0a99727926c94edf9.png)
的根,系数a、b、c为浮点数。
【输入】
输入a、b和c。
【输出】
若无穷解,则输出:Infinitely solution。
若无解,则输出:No solution。
若是一个实根,则输出格式为:x=…,数字、符号之间没有空格,结果保留2位小数。
若两个实根相等,则输出格式为:x1=x2=...,数字、符号之间没有空格,结果保留2位小数。
若是两个实根,则输出格式为:x1=...;x2=...,数字、符号之间没有空格,结果保留2位小数。
若是虚根,则输出:Imaginary root。
【输入示例】
2.1 8.9 3.5
【输出示例】
x1=-0.44;x2=-3.80
【提示】
可以使用数学库中的sqrt函数和fabs函数。方程的根以及其它中间变量用double类型变量表示。
(10分) 我的答案:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
double a, b, c, x1, x2, pd;
cin >> a >> b >> c;
pd = b * b - 4 * a * c;
if (a == 0 && b == 0 && c == 0)
cout << "Infinitely solution" << endl;
if (a == 0 && b == 0 && c != 0)
cout << "No solution" << endl;
if (a == 0 && b != 0)
cout << "x=" << fixed << setprecision(2) << -c * 1.0 / b << endl;
if (a != 0 && pd == 0)
cout << "x1=x2=" << fixed << setprecision(2) << -b * 1.0 / (2 * a) << endl;
if (a != 0 && pd > 0)
cout << "x1=" << fixed << setprecision(2) << (-b + sqrt(pd)) * 1.0 / (2 * a) << ";x2=" << fixed << setprecision(2) <<
(-b - sqrt(pd)) * 1.0 / (2 * a) << endl;
if (a != 0 && pd < 0)
cout << "Imaginary root" << endl;
return 0;
}
- 【描述】
输入学生的考试成绩(0~100),将学生的成绩划分等级并输出。学生的成绩可分为5个等级:90~100为A级,80~89为B级,70~79为C级,60~69为D级,0~59为E级。要求用switch语句。
【输入】
输入学生的考试成绩(0~100)。
【输出】
输出等级。
【输入示例】
91
【输出示例】
A
【提示】
假设学生的成绩为score,则score/10的一个值就代表了10种情况,例如score/10为7时,就代表成绩70~79的情况。
(10分) 我的答案:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
int score;
cin >> score;
switch(score/10){
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<<"非法输入"<<endl;
break;
}
return 0;
}