南大C++:《程序设计教程 用C++语言编写》答案(二)
这些是我自己写的代码,全部通过编译。
3.8.6 编写一个程序,输入一个字符串(以字符‘#’结束),对其中的">="进行计数。
/*
P67 3.8.6
编写一个程序,输入一个字符串(以字符‘#’结束),对其中的">="进行计数。
*/
#include <iostream>
using namespace std;
int main()
{
char s[100];
while (cin >> s)
{
int count = 0, i = 0;
while (s[i] != '#')
{
if (s[i] == '>'&&s[i + 1] == '=')
count++;
i++;
}
cout << count << endl;
}
}
3.8.7 假定邮寄包裹的计费标准如下(重量在档次之间时往上一档靠):
重量(克) 收费(元)
15 5
30 9
45 12
60 14(每满1000公里加收1元)
60以上 15(每满1000公里加收2元)
编写一个程序,输入包裹重量和邮寄距离,计算并输出收费金额。
/*
P67 3.8.7
假定邮寄包裹的计费标准如下(重量在档次之间时往上一档靠):
重量(克) 收费(元)
15 5
30 9
45 12
60 14(每满1000公里加收1元)
60以上 15(每满1000公里加收2元)
编写一个程序,输入包裹重量和邮寄距离,计算并输出收费金额。
*/
#include <iostream>
using namespace std;
int main()
{
int w, d, p;
while (1)
{
cout << "weight:";
cin >> w;
cout << "distance:";
cin >> d;
if (w <= 15)
p = 5;
else if (w <= 30)
p = 9;
else if (w <= 45)
p = 12;
else if (w <= 60)
p = 14 + d / 1000;
else
p = 15 + 2 * d / 1000;
cout << "price:" << p << endl;
}
}
3.8.8 编写一个程序计算圆周率。【公式】直到最后一项的绝对值小于10^-8。
/*
P67 3.8.8
编写一个程序计算圆周率。【公式】直到最后一项的绝对值小于10^-8。
*/
#include <iostream>
using namespace std;
int main()
{
int a = 1;
double pi = 0;
double min = 0.1*0.1*0.1*0.1*0.1*0.1*0.1*0.1;
int i;
for (i = 1;; i += 2)
{
if (1 / (double)i< min)
break;
pi += a*(1 / (double)i);
a = a*(-1);
}
cout << 4 * pi <<' '<<endl;
}
3.8.9 编写一个程序,求所有这样的三位数,它们等于它们的各位数字的立方的和。
/*
P67 3.8.9
编写一个程序,求所有这样的三位数,它们等于它们的各位数字的立方的和。
*/
#include <iostream>
using namespace std;
int main()
{
int i, j, k;
for (i = 1; i <= 9; i++)
{
for (j = 0; j <= 9; j++)
{
for (k = 0; k <= 9; k++)
{
if (i*i*i + j*j*j + k*k*k == i * 100 + j * 10 + k)
cout << i << j << k << endl;
}
}
}
}
3.8.10 编写一个程序,求a和b的最大公约数。
/*
编写一个程序,求a和b的最大公约数。
*/
#include <iostream>
using namespace std;
int main()
{
int a, b;
while (cin >> a >> b)
{
int t;
if (a < b)
{
t = a;
a = b;
b = t;
}
for (int i = b; i >= 1; i--)
{
if (a%i == 0 && b%i == 0)
{
cout << "最大公约数" << i << endl;
break;
}
}
}
}