1.输入任意 3 个数,然后按照从小到大的顺序进行输出。
#include <iostream>
int main()
{
using namespace std;
//a,b,c用于存储用户输入的数据,temp用于交换两个数的位置的临时变量
double a = 0, b = 0, c = 0, temp=0;
cout << "Please enter three number:" << endl;
cin >> a >> b >> c; //获取用户输入的数字
//利用中间变量调整数字的位置,使a<b<c
if (a > b) {
temp = a;
a = b;
b = temp;
}
if (a > c) {
temp = a;
a = c;
c = temp;
}
if (b > c) {
temp = b;
b = c;
c = temp;
}
//按从小到大的顺序输出结果
cout << a << " " << b << " " << c << endl;
return 0;
}
2.假设有一个函数,是一个线性分段的函数
X^2(X>0)
Y = 0 (X=0)
KX+b(X<0)
如果说给定任意一个X,计算出 Y 出来。
#include <iostream>
int main() {
using namespace std;
double X = 0, Y = 0, K = 0, B = 0;
cout << "请输入X<0时的斜率K与截距B:" << endl;
//获取用户输入的斜率和截距
cin >> K >> B;
cout << "请输入X的值:" << endl;
//获取自变量X
cin >> X;
//根据X与0的关系计算出对应的Y值
if (X > 0) {
Y = X * X;
}
else {
if (X == 0) {
Y = 0;
}
else {
Y = K * X + B;
}
}
//输出Y值
cout << "Y=" << Y << endl;
return 0;
}
3.快递公司送包裹的费用计算,包裹的重量,包裹送的里程数,在一个
0-500KM 1.0 元/公里
500-1200KM 1.4 元/公里
1200-2000KM 2.1 元/公里
2000KM以上 3.2 元/公里
起步价(10 元)+ 包裹重量 单价 公里数 = 寄件费用
输入包裹重量和要寄送目的地的公里数,计算出价格出来。
#include <iostream>
int main() {
using namespace std;
double weight = 0, mile = 0, price = 0, total = 0;
cout << "请输入包裹的重量和要寄送目的地的公里数:" << endl;
cin >> weight >> mile;
//根据公里数判断单价属于哪一个层次再进行计算
if (mile > 2000) {
price = 3.2;
}
else if (mile >= 1200) {
price = 2.1;
}
else if (mile >= 500) {
price = 1.4;
}
else {
price = 1.0;
}
total = 10 + weight * price * mile;
//输出寄件费用
cout << "寄件费用为:" << total << "元。" << endl;
return 0;
}
4.一个弹性的小球,从一定高度落下,假设高度为 h,然后到达地面后弹起,弹起的高度是原来 高度的 f*h;(0.2<f<0.8),当小球在地上不再弹起时,计算小球在空中经过的高度。(输入 h,f)
#include <iostream>
int main() {
using namespace std;
double h = 0, f = 0, total = 0;
cout << "请分别输入高度和弹跳系数f(0.2<f<0.8):" << endl;
cin >> h >> f;
//计算小球在空中弹跳的总高度,高度为0时小球停下
while (h)
{
total += h;
h *= f;
}
cout << "小球在空中经过的高度为:" << total<<endl;
return 0;
}
5.假设有这个一个数列
2/1,3/2,5/3,8/5……
要求计算这个数列的前 N项之和,要求输入 N,得到结果。
#include <iostream>
int main() {
using namespace std;
//lfnum为当前数,lfsum为前n项和
//m和n分别为分子分母,temp为临时变量
double lfnum = 0, lfsum = 0, m = 2, n = 1, temp=0;
int N = 0;
cout << "请输入N的值:" << endl;
cin >> N;
for (;N > 0;--N) {
//先将当前项加到lfnum中
lfnum = m / n;
lfsum += lfnum;
//调整位置,使m为下一个数的分子,n为下一个数的分母
temp = n;
n = m;
m = m + temp;
}
cout << "这个数列的前" << N << "项和为:" << lfsum;
return 0;
}
6.公式 S = 1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…n)输入 n 的值,计算 S 的值。
#include <iostream>
int main() {
using namespace std;
//a为分母
int n = 0, a = 1, i = 0;
//S为前n项和,lfnum为当前数
double S = 0, lfnum = 0;
cout << "请输入n的值:" << endl;
cin >> n;
for (i=2; i <= n+1; ++i) {
//得到每一项的值后将这一项加入到S中
lfnum = (double)1 / a;
S += lfnum;
//相加后算出下一项的分母
a += i;
}
//输出S
cout<<"S="<<S<<endl;
return 0;
}
7.任意给定两个正整数,计算他们的最大公约数和最小公倍数。
#include <iostream>
int main() {
using namespace std;
//na与nb为用户输入的两个整数
//m为最大公约数,n为最小公倍数,temp为临时变量
int na = 0, nb = 0, m = 0, n = 0, temp = 0;
cout << "请输入2个正整数:" << endl;
cin >> na >> nb;
//求最大公约数
// 让temp为na与nb中较小的那一个
if (na > nb) {
temp = nb;
n = na;
}
else {
temp = na;
n = nb;
}
//利用穷举法从大到小依次试验,直到找到最大公约数
while (true) {
if (na % temp==0 && nb % temp==0) {
break;
}
else {
--temp;
}
}
m = temp;
//求最小公倍数
do {
if (n % na == 0 && n % nb == 0) {
break;
}
else {
++n;
}
} while (true);
cout << "最大公约数为" << m << "\n最小公倍数为" << n << endl;
return 0;
}
8.根据下图,输入 x1,x2 计算曲线和 x 轴包围的面积,x 用弧度制
#include <iostream>
#include <cmath>
int main() {
using namespace std;
//y为函数值,temp为临时变量,area为面积
//把区域分成足够多的小矩形,总面积近似看作为每个矩形面积的和
//步长distance越小,结果越精确
double x1 = 0, x2 = 0, y = 0, temp=0,
area=0, distance = 0.0000001;
cout << "请分别输入x1与x2的值:" << endl;
cin >> x1 >> x2;
//使x1>x2
if (x1 > x2) {
temp = x1;
x1 = x2;
x2 = temp;
}
//计算曲线与x轴围成的面积
while (x1 <= x2) {
y = cos(x1);
//根据y与0的大小关系确定计算方法
//也可以用fobs()直接获取y的绝对值
if (y>=0){
area += distance * y;
}
else {
area += distance * (-y);
}
x1 += distance;
}
//输出面积
cout << "曲线与x轴所包围的面积为" << area;
return 0;
}
9.编写程序,计算出 1000 以内的素数,然后输出到屏幕上。
#include <iostream>
#include <cmath>
int main()
{
using namespace std;
// 从2开始用枚举法逐个检验
int i=2, n;
for (i; i <= 1000;i++) {
n = 2;
while (n < i && i % n != 0) {
n++;
}
if (i == n) {
cout << i << endl;
}
}
return 0;
10.从键盘输入任意个英文字符,分别取出每个字符出来,然后将其进行加密,加密的规则:如果 是 A->C,Y->A,Z->B。
#include <iostream>
int main() {
using namespace std;
string password;
cout << "请输入由任意个字符组成的字符串:" << endl;
cin >> password;
//通过网络获知可以用这个方法逐个读取每个字符
for (char ch : password) {
//如果是Y,Z,y,z这4个字符之一单独处理
//其他的+2即可,为对应的ASCII码表的下2个
if (ch == 'Y') {
ch = 'A';
}
else if (ch == 'Z') {
ch = 'B';
}
else if (ch == 'y') {
ch = 'a';
}
else if (ch == 'z') {
ch = 'b';
}
else {
ch += 2;
}
cout << ch;
}
return 0;
}