2011-03-24 58 views
-1

請幫我回答這個問題,void函數與參數的函數。我不明白它很好幫我添加參數繪製圖案

我想編寫一個程序,使用戶可以輸入形成模式

我需要定義兩個(文字),這是(星)變量字符和(下一個),該語句必須包括三個參數 - 一個將是一個(INT)用於圖案

和兩個,這將是(字符)來顯示圖案的字符。

我必須改變功能(drawpattern)具有三個值的參數

指示圖案和兩個(字符)的大小,指示將被用於顯示圖形字符的(INT)參數。

輸入(4)尺寸,該字符被用於啓動對於第二和每個交替組的圖案和(+)(Y)

這是我迄今所做和我做不是現在,如果是好的:

#include <iostream> 

using namespace std; 

void drawPattern(int size, char start, char next) 
{ 
    for (int i = 0; i <= size; i++) 
     for (int j = 0; j <= size; j++) 
     { 
      if ((i/size) % 3 == 0) 
       if ((j/size3) % 3 == 0) 
        cout << '4'; 
       else 
        cout << 'Y'; 
      else 
       if ((j/size) % 3 == 0) 
        cout << '+'; 
       else 
        cout << '4'; 
     } 
} 
int main() 
{ 
    int size; 
    char start, next; 

    cout << "Please enter number (4) for the size of the pattern : "; 
    cin >> size; 

    cout << " Now enter leter (Y) to start the pattern: "; 
    cin >> start; 

    cout << "Lastly enter the (+) for the other pattern: "; 
    cin >> size; 

    cout << " This is the output pattern: " << endl; 
    drawPattern(size, start, next); 

    return 0; 
} 
+0

我在代碼中添加了一個代碼塊,但現在您需要修復縮進。沒有人可以閱讀。 – I82Much 2011-03-24 14:27:26

+1

你爲什麼要讀兩次'size'? – LumpN 2011-03-24 14:27:55

+3

我們需要修正格式,這已經夠糟的了,但是當你再次打破格式時,情況會更糟糕。我建議:1)修正___問題的標題____,用一個簡潔而有意義的句子來說明你有什麼問題。 2)修復你的程序___indentation___。這種縮進讓我的眼睛流血。我拒絕看這種可憎的事物。 3)試着將描述你的問題的那段文字分解成___可理解的句子____。我知道這對非本地人來說並不容易(我也是非本地人),但將它分成更小的句子對你來說可能更容易。 – sbi 2011-03-24 14:31:04

回答

0

看起來你是硬編碼在drawPattern功能的輸出,而忽略從用戶的實際輸入。我認爲你應該用傳遞給函數的相應參數替換'Y'和'+',因爲我很確定教授不會對硬編碼值感到高興。

+0

該程序正在編譯,但我不知道是否鍵入正確的代碼,因爲它在上面的問題中說 – queos 2011-03-24 15:07:39

+0

我不確定你完全理解這個問題。它要求你輸入一個數字X(無論這個數字是多少),你有2個字符(第一個和第二個)。看起來他們希望你編寫一個程序,以第一個字符開頭,並在第一個字符和第二個字符之間交替,直到你完成了X次...所以如果你輸入8,X和F,它會看起來像'XFXFXFXF 」。那有意義嗎? – 2011-03-24 15:17:08

+0

是的,就像那樣 – queos 2011-03-24 20:18:24

0

在第11行,你有一個錯字。它說size3它應該說size

您也正在一個邏輯錯誤。

此代碼

if ((i/size) % 3 == 0) 

是錯誤的概念。至少現在編寫代碼。通常你會這樣寫:

if (i % 3 == 0) 

這個if語句每隔三行都會是真的。所述%(modulu)計算的整數(整數)除法firstnumber/secondnumber的其餘部分。如果你有i序列會從0到10,這是i % 3輸出

i: 0 1 2 3 4 5 6 7 8 9 10 
i%3: 0 1 2 0 1 2 0 1 2 0 1 

正如你所看到的,i % 3 == 0true當我是被3整除

您的代碼也不同的東西。假設size = 10。然後計算(整數)分區i/size。最後你計算(i/size) % 3。然而i總是比size少,除了在循環的最後一輪。讓我們來看看這些值再次:

i:  0 1 2 3 4 5 6 7 8 9 10 
size: 10 10 10 10 10 10 10 10 10 10 10 
i/size: 0 0 0 0 0 0 0 0 0 0 1 

由於i/size值只改變一次,計算(i/size) % 3是沒有意義的。

+0

感謝它讓我們感覺 – queos 2011-03-24 20:25:11

+0

如果有道理,請點擊向上按鈕爲此答案投票。你可能不應該接受這個答案,因爲我沒有完全解決你的問題。 – nitro2k01 2011-03-24 21:01:46