顯示廣告
隱藏 ✕
看板 Knuckles
作者 Knuckles(阿德)
標題 為了找工作的C++課程--作業3
時間 2008年08月14日 Thu. AM 02:47:34


課本看到8-3

1. Swap

   寫一個function:swap(a,b),呼叫後會將a與b的值交換
   使用call by address與call by reference,兩個方法都寫寫看


2. 泡沫排序,排名字

   設一個長度為11的字元指標陣列,把以下人名加入:
   "Knuckles", "Little Apple", "josh", "dog", "lion", "meng", "keanos",
   "bookie", "sibyllaliu", "rudolph", "awei"

   寫一個可將這個陣列依第一個字母做排序的function
   並將結果顯示出來


3. 巴斯卡三角型

   寫一個組合公式的Function

                n!
   C(n,x) = ─────
            (n-x)! x!

   利用C(n,x),畫出巴斯卡三角型

   1
   1 1
   1 2 1
   1 3 3 1
   1 4 6 4 1
   ....
   三角型的高度由使用者輸入

--
※ 來源: 台大電信 DISP 實驗室 (http://disp.twbbs.org)
※ 作者: Knuckles  來自: 140.112.175.128  時間: 2008-08-14 02:47:34
※ 編輯: Knuckles  來自: 140.112.175.128  時間: 2008-08-14 02:55:30
推 keanos: 報告老師 有兩題第二題 >>140.112.175.134 08-14 23:18
推 keanos: 第三題 記得好像也不一定要用那個公式吧 用公式好像比較簡單XD >>140.112.175.134 08-14 23:19
※ 編輯: Knuckles  來自: 140.112.175.128  時間: 2008-08-15 00:03:32
推 Knuckles: ㄟ 這次作業的主題是function,所以重點是組合公式啦  >>140.112.175.128 08-15 00:05
※ 編輯: Knuckles  來自: 140.112.175.128  時間: 2008-10-13 04:07:27

2. ans
#include <iostream>
using namespace std;

void sort_str(char **,int);

int main()
{
	
char *list[11] = {"Knuckles", "Little Apple", "josh", "dog", "lion", 
	
                 
"meng", "keanos", "bookie", "sibyllaliu", "rudolph", "awei"};
	

	
cout << "原本的順序:" << endl;
	
int i;
	
for(i=0;i<11;i++){
	
	
cout << list[i] << endl;
	
}
	
sort_str(list,11);
	
cout << "排序後的順序:" << endl;
	
for(i=0;i<11;i++){
	
	
cout << list[i] << endl;
	
}

	
system("pause");
	
return 0;
}

void sort_str(char **list,int N)
{
	
int i,j;
	
char *temp;
	
char a,b;
	
for(i=1;i<N;i++){
	
	
for(j=1;j<=N-i;j++){
	
	
	
a = *list[j-1];
	
	
	
b = *list[j];
	
	
	
if(a<=90) a+= 32;
	
	
	
if(b<=90) b+= 32;
	
	
	
if(a > b){
	
	
	
	
temp = list[j];
	
	
	
	
list[j] = list[j-1];
	
	
	
	
list[j-1] = temp;
	
	
	
}
	
	
}
	
}
}
3. ans
#include <iostream>
using namespace std;

int c(int,int);
int fac(int);

int main()
{
	
int n,x,L;

	
cout << "請輸入巴斯卡三角型的層數:";
	
cin >> L;

	
for(n=0;n<L;n++){
	
	
for(x=0;x<=n;x++){
	
	
	
cout << " " << c(n,x);
	
	
}
	
	
cout << endl;
	
}

	
system("pause");
	
return 0;
}

int c(int n,int x)
{
	
return fac(n)/(fac(n-x)*fac(x));

}

int fac(int n)
{
	
if(n==0) return 1;

	
int i,x=1;
	
for(i=2;i<=n;i++)
	
	
x*=i;
	
return x;
}

※ 編輯: Knuckles  來自: 140.112.175.128  時間: 2008-10-19 02:03:30
※ 編輯: Knuckles  來自: 140.112.175.130  時間: 2009-05-31 15:25:33
推 nick:完成了  XD  在公司學BCB
	
>>220.135.250.105 08-28 14:39
※ 編輯: Knuckles 時間: 2015-10-19 07:39:47
※ 看板: KnucklesNote 文章推薦值: 4 目前人氣: 0 累積人氣: 1000 
分享網址: 複製 已複製
iloveyouever 轉錄至看板 my_time_my_heart 時間:2010-08-03 21:02:13
terrykyo 轉錄至看板 terrykyo 時間:2011-04-04 01:51:39
TL 轉錄至看板 TL (使用複製) 時間:2012-12-08 19:46:28
e)編輯 d)刪除 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇