close
我是個C++的初學者,這裡有個問題不曉得該怎麼打,想麻煩
各位高手來幫我解答!!!

題目

↓↓↓↓

需要宣告三個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;
}

arrow
arrow
    全站熱搜

    偽新聞新聞雜誌 發表在 痞客邦 留言(1) 人氣()