讓使用者輸入10個1到100間的整數後,畫出以10分為該區間的長條圖,我們可以用C語言來表達,下程式碼
#include <stdio.h>
int main()
{
int i,j,n,b[10]={0};
for(i=1;i<=10;i++){
scanf("%d", &n);
b[(n-1)/10]++;
}
for(i=1;i<=10;i++){
printf("%3d", i*10);
for(j=1;j<=b[i-1];j++){
printf("*");
}
printf("\n");
}
return 0;
}
上面的程式碼中我們首先宣告四個變數i j n b[10],我們讓使用者輸入10個整數介於1到100之間以10為界線,介於1到10之間數有幾個就印出幾個*星星,b[10]={0}讓其中10個元素初始值設為0,for迴圈i從1開始,i跑10次,i++就是i+1,讓鍵盤輸入n,b[n-1]/10就是讓1到10對應到哪個區間的數在除10就知道對應的編號,例如1到10 n-1 1-1就變成0到9區間的值了在除以10就對應到編號0就知道要印出幾個*星星了,下圖可以說明
1-10 0-9 0
11-20 10-19 1
21-30 20-29 2
31-40 30-39 3
41-50 40-49 4
51-60 50-59 5
61-70 60-69 6
71-80 70-79 7
81-90 80-89 8
91-100 90-100 9
接著繼續介紹程式,第二個for迴圈也是從1跑到10,printf的%3d因為我們C語言有個特殊能力就是格式化我們%3d就會空出3格不夠的就會自動補上就能對齊了,接著我們將i編號乘以10就能顯示出數字,我們第三個for迴圈j從1開始印,j<=b[i-1]為甚麼b[i-1]呢因為我們要的是他計數器的編號,我們就能印出*星星,最後並且換行就能印出我們輸入10個1到100之間的整數我們畫出該以10為該區間的長條圖了
#ifndef COMMISSION_H
#define COMMISSION_H
#include <string>
using std::string;
class CommissionEmployee
{
public:
CommissionEmployee( const string &, const string &, const string &,
double = 0.0, double = 0.0 );
void setFirstName( const string & );
string getFirstName() const;
void setLastName( const string & );
string getLastName() const;
void setSocialSecurityNumber( const string & );
string getSocialSecurityNumber() const;
void setGrossSales( double );
double getGrossSales() const;
void setCommissionRate( double );
double getCommissionRate() const;
double earnings() const;
void print() const;
private:
string firstName;
string lastName;
string socialSecurityNumber;
double grossSales;
double commissionRate;
};
#endif
上面的程式碼中我們從衍生別物件呼叫基本類別的函示,基本類別指標、衍生類別指標指向基本類別物件、衍生類別物件的三種方法,前面兩種方法比較直接,利用基本類別的指標指向基本類別物件並呼叫基本類別功能,而衍生類別的指標則用於指向衍生類別物件,Commission的類別定義中,我們先宣告他的public公有的有什麼,把他的建構子設好setFirstName名setLatName姓...等等,私有的private設好,最後記得;和#endif才表示把類別class定義結束
這邊非常謝謝IT邦幫忙舉辦這次30天的活動讓我們這30天過的相當充實,不斷的複習舊的與新的C C++,也達到當初設定的目標了解C語言和C++語言的差別,以及讓C++學習到物件導向的目標,雖然C語言沒有物件導向但我覺的他也些概念很像物件導向的概念,30天說長不長說短不短,謝謝IT邦幫忙也謝謝自己達成了挑戰!