欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

《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;

}

 

相关标签: C 初学者