2012-03-31 9 views
1

私はそれがプログラミングに来るとき完全に役に立たないよ、そう心の中でそれを保つ!は、Cプログラムのコンパイル時にエラーを取得しておいてください:(

を我々は2つの乱数を生成するコード、および2個の乱数を書かなければなりませんでした生徒はその質問に答えるよう促されます。間違っているとプログラムがループするまでループし、正しい場合はループして別の質問をします質問私はコンパイルするとき

私はこれらのエラーを得続ける:。

multi.c: In function ‘multiply’: 
multi.c:6:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token 
multi.c:27:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token 
multi.c:31:1: error: expected ‘{’ at end of input 
ここでは

は私のコードで、誰かが私を助けてくださいすることができます

#include <stdio.h> 

int multiply(int x, int y) 

int main() 
{ 
    int multiply(int x, int y); 
    int x = rand()%20; 
    int y = rand()%20; 
    int i, answer; 
    i = multiply(x,y); 

    printf("what is %d multiplied by %d\n?" x, y); 
    scanf("%d\n", &answer); 

    while(answer != i) 
    { 
     printf("wrong try again!"); 
     scanf("%d\n", &answer); 
    } 

    printf("very good!"); 
} 

int multiply(int x, int y) 
{ 
    int k; 
    (x*y = k); 
    return k; 
} 
+0

大文字を含む標準英語を入力してください。 – thb

+0

@thb:私は読者のための執筆に同意するが、標準的な英語のようなものはないようだ。スペイン語(Castellano)やフランス語とは異なり、英語には標準的で正しいものとそうでないものを定義する規制機関がありません。 –

答えて

6

ライン27 x*y = k上の割り当てはk = x*yする必要があります。

printf("what is %d multiplied by %d\n?" /* here */ x, y); 
+0

なぜこれは問題でしょうか? – user1304516

+0

@ user1304516これらは構文エラーです。修正する前にコンパイラがプログラムを解析できません。 – dasblinkenlight

+0

WOOOOO私はそれをやった!!!!!!!!!!本当にありがとう! :D:D 答えが正しい場合、私は今ループを作る必要があります、どうすればいいですか? – user1304516

2
int multiply(int x, int y) 

これはセミコロンが欠落しています。

は、ライン13上のリテラル文字列の後に行方不明の昏睡がありライン6

int multiply(int x, int y)後にセミコロンがあります。


int multiply(int x, int y); 

あなたは、関数本体の内部で関数を宣言することはできません。この行を削除するだけです。


(x*y = k); 

あなたは後方の割り当てを持っています。 k = x * y;が正しいです。

+0

kk私はこれらの2つを変更しましたが、今これらのエラーを受けています multi.c:12:42:error:expected ')' before 'x' multi。 c:12:42:warning:フォーマット '%d'は一致する 'int'引数を期待しています[-Wformat] multi.c:12:42:警告:フォーマット '%d' ] – user1304516

+0

rand()は同じ数字を繰り返し生成し続けますが、「3が3で乗算されています」ということを続けています。 – user1304516

+0

@ user1304516シードを変更する必要があります。 'rand'を呼び出す前に' srand(time(NULL)); 'を試してください。 – Pubby

0
int multiply(int x, int y); 

これはなぜmain()にありますか?関数プロトタイプを関数内に持つことはできません。

関連する問題