#include "stdafx.h"
#include <iostream>
#include <array>
#include <string>
const int SIZE=101;
using namespace std;
void Xiti1()
{
cout << "输入两个整数:\n";
int xiao, da;
cin >> xiao;
cin >> da;
int temp;
if (xiao>da)
{
temp = xiao;
xiao = da;
da = temp;
}
int i=0;
int sum=0;
for ( i = xiao; i < da+1; i++)
{
sum += i;
}
cout << "从" << xiao << "到" << da << "的所有数字的和是" << sum << endl;
return;
}
void Xiti2()
{
array<long double,SIZE> factory;
int i,j;
factory[0] = 1L; factory[1] = 1L;
for ( i = 2; i < SIZE; i++)
{
factory[i] = factory[i - 1] * i;
}
for ( i = 0; i < SIZE ; i++)
{
cout << i << "!=" ;
for ( j = i; j >1; j--)
{
cout << j << "*" ;
}
if (i>1)
{
cout << "1=" << factory[i] << endl;
}
else
{
cout << factory[i] << endl;
}
}
return;
}
void Xiti3()
{
int a, sum=0;
cout << "输入一个整数,我可以自动求和:\n";
while (cin>>a)
{
if (0==a) break;
sum += a;
cout << "现在和是" << sum << endl;
}
return;
}
void Xiti4()
{
double dap=100, cle=100;
double rate1 = 0.1, rate2 = 0.05;
int i=1;
bool victor = false;
do
{
dap = 100*(1+rate1*i);
cle = cle*(1+rate2);
i++;
} while (dap >= cle);
cout <<i-1<<"年后,Cleo投资可以超过Daphne\n";
cout << "此时,Cleo有" << cle << "美元,Daphne有" << dap << "美元。" << endl;
return;
}
void Xiti5()
{
const char*month[12] = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
int xiaoliang[12];
cout << "记录《C++ For Fools》一书的销量\n";
int i;
int sum=0;
for ( i = 0; i < 12; i++)
{
cout << "请输入" << month[i] << "的销售量:";
cin >> xiaoliang[i];
}
for ( i = 0; i < 12; i++)
{
cout << month[i] << "的销量为:" << xiaoliang[i]<<endl;
sum = sum + xiaoliang[i];
}
cout << "一年来总的销量为:" << sum << "本。\n";
return;
}
void Xiti6()
{
const int NIAN = 3;
const int YUE= 12;
const char*month[YUE] = { "一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月" };
int xiaoliang[NIAN][YUE];
cout << "记录《C++ For Fools》一书的销量\n";
int i,j;
int sum = 0;
for (j = 0; j < NIAN; j++)
{
for (i = 0; i < YUE; i++)
{
cout << "请输入第"<<j+1<<"年" << month[i] << "的销售量:";
cin >> xiaoliang[j][i];
}
}
for ( j = 0; j < NIAN; j++)
{
for (i = 0; i < 12; i++)
{
cout <<"第"<<j+1<<"年"<< month[i] << "的销量为:" << xiaoliang[j][i] << endl;
sum = sum + xiaoliang[j][i];
}
}
cout << NIAN<<"年来总的销量为:" << sum << "本。\n";
return;
}
struct car
{
char productor[20];
int year;
};
void Xiti7()
{
cout << "有多少个车辆呢?";
int shul;
(cin >> shul).get();
car * qiche=new car[shul];
int i;
for (i = 0; i < shul; i++)
{
cout << "请输入第" << i + 1 << "量汽车数据:";
cout << "厂家:";
cin.getline(qiche[i].productor, 20);
cout << "年份:";
(cin >> qiche[i].year).get();
}
for ( i = 0; i < shul; i++)
{
cout << "第" << i + 1 << "量汽车数据:\n";
cout << "厂家:"<< qiche[i].productor<<endl;
cout << "年份:" << qiche[i].year << endl;
}
return;
}
void Xiti8()
{
cout << "输入单词,最后统计有多少个字:\n";
char cha[20];
int sum=0;
while ((cin>>cha)&&(strcmp(cha,"done")))
{
sum++;
}
cout<<"一共"<<sum<<"个字。"<<endl;
return;
}
void Xiti9()
{
cout << "输入单词,最后统计有多少个字:\n";
string cha;
int sum = 0;
while ((cin >> cha) && (cha!= "done"))
{
sum++;
}
cout << "一共" << sum << "个字。" << endl;
return;
return;
}
void Xiti10()
{
int hang=0;
cout << "输入要显示的行数:\n";
while (!(cin>>hang))
{
cout << "不合法";
cin.clear();
cin.ignore();
}
int i, j;
for ( i = 0; i < hang; i++)
{
for ( j = 0; j < hang-i-1; j++)
{
cout << ".";
}
for ( j = hang - i - 1; j < hang; j++)
{
cout << "*";
}
cout << endl;
}
return;
}
int main()
{
int XitiNo=1;
cout << "第四章编程练习答案:\n";
cout << "请输入习题编号或按(0)退出:\n";
cin >> XitiNo;
while (XitiNo!=0)
{
if (cin)
{
if (XitiNo >= 0 && XitiNo <= 10)
{
switch (XitiNo)
{
case 0:
{
cout << "即将退出程序啦!\n";
}break;
case 1:
{
cout << "第" << XitiNo << "题如下:\n";
Xiti1();
}break;
case 2:
{
cout << "第" << XitiNo << "题如下:\n";
Xiti2();
}break;
case 3:
{
cout << "第" << XitiNo << "题如下:\n";
Xiti3();
}break;
case 4:
{
cout << "第" << XitiNo << "题如下:\n";
Xiti4();
}break;
case 5:
{
cout << "第" << XitiNo << "题如下:\n";
Xiti5();
}break;
case 6:
{
cout << "第" << XitiNo << "题如下:\n";
Xiti6();
}break;
case 7:
{
cout << "第" << XitiNo << "题如下:\n";
Xiti7();
}break;
case 8:
{
cout << "第" << XitiNo << "题如下:\n";
Xiti8();
}break;
case 9:
{
cout << "第" << XitiNo << "题如下:\n";
Xiti9();
}break;
case 10:
{
cout << "第" << XitiNo << "题如下:\n";
Xiti10();
}break;
default:
{
cout << "即将退出程序啦\n";
XitiNo = 0;
}
break;
}
cout << "继续查看请输入习题编号或按(0)退出:\n";
cin >> XitiNo;
}
else
{
cout << "没有这样的编号\n继续查看请输入习题编号或按(0)退出:\n";
cin >> XitiNo;
}
}
else
{
XitiNo=0;
}
}
system("pause");
return 0;
}