《C++ Primer Plus》學習筆記——第五章 迴圈和關係表示式(四)
阿新 • • 發佈:2018-12-19
程式設計練習
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;
}