看板 Programming
作者 標題 [轉錄] 為了找工作的C++課程--作業2
時間 2010年02月24日 Wed. AM 11:24:18
※ 本文轉錄自 Knuckles_note 看板
看板 Knuckles
作者 標題 為了找工作的C++課程--作業2
時間 2008年08月08日 Fri. PM 10:24:38
看完陣列與指標後的作業:
1. 矩陣相乘
[ 1 2 3 ] [ 10 11 12 13]
[ 4 5 6 ] * [ 14 15 16 17] = ?
[ 18 19 20 21]
2. 累積分佈圖(histogram)
建立一個10*100的矩陣,裡面的值是用rand()產生的0~9的隨機數
計算他的histogram並顯示出來,像下面這樣:
值 數量 0 20 40 60 80 100 120
-- ---- +---+---+---+---+---+---+---
0 94 ******************
1 101 ********************
2 107 *********************
3 93 ******************
4 104 ********************
5 111 **********************
6 94 ******************
7 94 ******************
8 96 *******************
9 106 *********************
3. 矩陣一維轉二維
char x1[] = {" .★. ★ * ★ ★ *★ .' ★* "
" *★ ★'‘*. "
" .* ‘★ ★' ‘* ★ ’ "};
x1是一個長度為154的字元矩陣,請把他轉為一個7x22的二維矩陣並顯示出來
4. 抽籤
設一個長度為11的指標陣列,把以下人名加入:
"Knuckles", "Little Apple", "josh", "dog", "lion",
"meng", "keanos", "bookie", "sibyllaliu", "rudolph","awei"
使用者輸入要選幾個人後,隨機選出這幾個人並顯示出來
--
※ 來源: 台大電信 DISP 實驗室 (http://disp.twbbs.org)
※ 作者: Knuckles 來自: 140.112.175.128 時間: 2008-08-08 22:24:38
※ 編輯: Knuckles 來自: 140.112.175.128 時間: 2008-08-13 03:40:55
推 Knuckles: 修改一下 第1題兩個矩陣的size改為2*3與3*4 >>140.112.175.128 08-13 03:43
→ Knuckles: 以及第2題隨機矩陣的大小改為10*100 >>140.112.175.128 08-13 03:43
※ 編輯: Knuckles 來自: 140.112.175.128 時間: 2008-08-13 12:34:14
推 Knuckles: 修改了一下第2題的圖 >>140.112.175.128 08-13 12:35
推 awei: 為什麼抽籤沒有我的名字? >>220.129.145.217 08-13 14:16
※ 編輯: Knuckles 來自: 140.112.175.128 時間: 2008-08-13 15:09:15
推 Knuckles: 加上去了 = = >>140.112.175.128 08-13 15:09
推 awei: 謝謝 ^^ >>220.129.145.217 08-13 15:16
※ 編輯: Knuckles 來自: 140.112.175.128 時間: 2008-10-13 04:07:24
參考解答:
1. ans:
int x[2][3] = {{1,2,3},{4,5,6}};
int y[3][4] = {{10,11,12,13},{14,15,16,17},{18,19,20,21}};
int z[2][4] = {0};
int i,j,k;
for(i=0;i<2;i++){
for(j=0;j<4;j++){
for(k=0;k<3;k++){
z[i][j] += x[i][k]*y[k][j];
}
cout << "
" << z[i][j] ;
}
cout << endl;
}#include <iostream>
#include <ctime>
using namespace std;
int main()
{
}
3. ans#include <ctime>
using namespace std;
int main()
{
srand((unsigned int)time(NULL));
int i,j,R[10][100];
for(i=0;i<10;i++){
for(j=0;j<100;j++){
R[i][j] = rand()%10;
}
}
int hist[10] = {0};
for(i=0;i<10;i++){
for(j=0;j<100;j++){
hist[R[i][j]]++;
}
}
cout << " 值 數量
0 20 40 60 80 100 120" << endl
<< " -- ----
+---+---+---+---+---+---+---" << endl;
for(i=0;i<10;i++){
cout << " " << i << " " << hist[i] << "
";
for(j=0;j<hist[i]/5;j++){
cout << "*";
}
cout << endl;
}
system("pause");
return 0;
}
char x2[7][22];
int m,n;
for(m=0;m<7;m++){
for(n=0;n<22;n++){
x2[m][n] = x1[m*22+n];
cout << x2[m][n];
}
cout << endl;
} .★. ★ * ★
★ *★ .' ★
* *
★ ★'
‘*. .*
‘★ ★'
‘* ★ ’
4. ans.
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
}
※ 編輯: Knuckles 來自: 140.112.175.128 時間: 2008-10-19 02:01:52
#include <ctime>
using namespace std;
int main()
{
srand((unsigned int)time(NULL));
char *list[10] = {"Knuckles", "Little Apple", "josh", "dog", "lion",
"meng", "keanos", "bookie", "sibyllaliu", "rudolph"};
bool is_select[10] = {false};
int N;
cout << "請輸入要抽出來的人數(1~10):";
cin >> N;
int i,x;
for(i=1;i<=N;i++){
do{
x = rand()%10;
}while(is_select[x]);
is_select[x] = true;
cout << i << ". " << list[x] << endl;
}
system("pause");
return 0;
}
推 nick:完成了...
>>61.230.68.38 01-12 02:42
推 Knuckles:good!
>>140.112.175.130 01-12 03:07
推 sakuku:完成too
>>61.224.35.208 02-07 14:46
※ 編輯: Knuckles 來自: 140.112.175.130 時間: 2009-05-31 15:24:30
--
※ 來源: DISP BBS (http://disp.twbbs.org)
※ 作者: abc1231qa 來自: 163.28.174.100 時間: 2010-02-24 11:24:18
※ 看板: Programming 文章推薦值: 1 目前人氣: 0 累積人氣: 791
( ̄︶ ̄)b billtwo3 說讚!
※
iloveyouever
轉錄至看板 my_time_my_heart 時間:2010-08-01 19:46:52
※
iloveyouever
轉錄至看板 my_time_my_heart 時間:2010-08-01 19:46:55
回列表(←)
分享