各位高手來幫我解答!!!
題目
↓↓↓↓
需要宣告三個15個位置之整數型陣列,A[3][5],B[3][5],C[3][5]
以亂數產生函數 srand 及 rand 隨機產生1~100之三十個整數值,分別置入A 及B陣列,求 C = A + B 並印出三個陣列內含資料
【提示】
使用srand函數時,可搭配下述指令來啟始化系統亂數產生器
(rand)
long seed;
srand(time(&seed)%60);
使用time函數時,須引入#include <ctime>
使用srand 及 rand函數時,須引入#include <cmath>
rand產生之亂數值介於 0 – 32767之間
想法 :
srand() 的用途是讓每次取的亂數都不一樣 ,
如果沒加的話每次的亂數都會一樣
都常寫 rand % 數字
就會取到 0 到 數字 - 1 的亂數
那如果想取到 1 到數字 的亂數
就寫成 rand()%數字+1
這是一般取亂數的寫法
至於印出來 我是寫得像表格一樣
A B C <-- 第一列
然後下面的數字用 printf("%3d %3d %3d\n",A[i][j],B[i][j],C[i][j]);
因為用 %3d 可以讓數字佔3個半格 不管只有個位 兩位 或三位...
如果用setw()也可以做得到 只是我覺得比較麻煩不想用
其他應該就還好 如果還有問題或不清楚的 歡迎留言討論
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int A[3][5],B[3][5],C[3][5];
int i,j;
long seed;
srand(time(&seed)%60);
cout <<"A B C "<<endl;
for(i=0;i<3;i++){
for(j=0;j<5;j++){
A[i][j]= rand()%100+1;
B[i][j]= rand()%100+1;
C[i][j] = A[i][j]+B[i][j];
printf("%3d %3d %3d\n",A[i][j],B[i][j],C[i][j]);
}
}
system("PAUSE");
return 0;
}
留言列表