《C++ Primer Plus》学习笔记——第五章 循环和关系表达式(四)
程序员文章站
2022-07-15 11:03:34
...
编程练习
1.编写一个要求用户输入两个整数的程序。该程序将计算并输出这两个整数之间(包括这两个整数)所有整数的和。这里假设先输入较小的整数。例如,如果用户输入的是2和9,则程序将指出2~9之间的所有整数的和为44.
#include <iostream>
int Statistics (int m,int n);
int main ()
{
using namespace std;
int min_mber,max_mber;
int count;
cout<<"请输入第一个整数:";
cin>>min_mber;
cout<<"请输入第二个整数:";
cin>>max_mber;
count=Statistics (min_mber,max_mber);
cout<<"两整数之间的整数和为:"<<count<<endl;
}
int Statistics (int m,int n)
{
int count=0;
int temp;
if (m>n)
{
temp=n;
n=m;
m=temp;
}
for (int i=m;i<=n;i++)
{
count+=i;
}
return count;
}
2.使用array对象和long double编写程序计算100!的值
#include <iostream>
#include <array>
long double Factorial (int n);
int main ()
{
using namespace std;
const int ncount1=10;
const int ncount2=10;
array<int,ncount1>arr;
cout<<"请输入10个整数:"<<endl;
for (int i=0;i<ncount1;i++)
{
cin>>arr[i];
}
for (int i=0;i<ncount1;i++)
{
cout<<arr[i]<<" ";
}
long double factorial;
factorial=Factorial (ncount2);
cout<<"100!的阶乘为:"<<factorial<<endl;
}
long double Factorial (int n)
{
long double m=1;
for (int i=1;i<=n;i++)
m*=i;
return m;
}
3.Daphne以10%的单利投资了100美元,也就是说,每一年的利润都是投资额的10%,即每年10美元;利息=0.10*原始存款。
而Cleo以5%的复利投资了100美元,也就是说,利息是当前存款(包含利息)的5%;利息=0.05*当前存款。
编写程序,计算多少年后,Cleo的投资价值才能超过Daphne的投资价值。
#include <iostream>
int main ()
{
using namespace std;
double daphe=100,cleo=100;
int year_count=0;
double daphne_1=daphe;
for (int i=0;;i++)
{
daphe+=daphne_1*0.1;
cleo+=cleo*0.05;
if (cleo>daphe)
break;
year_count++;
}
cout<<year_count<<"年后Cleo的投资价值才能超过Daphne。"<<endl;
return 0;
}
4.编写一个程序,它使用一个char数组和循环来每次读取一个单词,直到用户输入done为止。随后,该程序指出用户输入了多少个单词(不包括done),下面是该程序运行情况:
Emter words (to stop,type the word done):
anteater birthday category dumpster
envy finagle geometry done for sure
You enter a total of 7 words.
#include<iostream>
#include<cstring>
int main()
{
using namespace std;
cout<<"Emter words (to stop,type the word done):"<<endl;
char words[10][100];
bool judge=0;
int ncount=0;
for (int i=0;i<10;i++)
{
for (int j=0;j<100;j++)
{
words[i][j]=cin.get();
if (words[i][j]==' ')
{
words[i][j]='\0';
break;
}
}
ncount++;
judge=strcmp(words[i],"done");
if(judge!=1)
{
break;
}
}
cout<<"You enter a total of "<<ncount<<" words.";
return 0;
}