1. 程式人生 > >《C++ Primer Plus》學習筆記——第五章 迴圈和關係表示式(四)

《C++ Primer Plus》學習筆記——第五章 迴圈和關係表示式(四)

程式設計練習

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;

}