重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

You Tube
C言語プログラミング講座第二回 - 計算と変数 -

で最後に以下のプログラムが出てきます。

#include <stdio.h>

int main(){
int x = 5;
int y = 8;
printf("%d * %d = %d\n" , x,y, x * y);
int X = 3 ;
int y = 11;
printf("%d * %d = %d\n" , x,y, x * y);
return 0;
}

http://codepad.org/
 でコンパイルすると
In function 'main':
In function 'main':
Line 8: error: redefinition of 'y'
Line 5: error: previous definition of 'y' was here 以上エラーが出ます。
以上のエラー直訳後は以下です。
関数内の「メイン」:
8行目:エラー: 'Y'の再定義
5行目:エラー:'Y'の前の定義ここにいた
 以上ですが! 
転記ミスでしょうか?
 よろしくお願いします。

A 回答 (6件)

> intがなかったらOKですかね


Xも小文字のxの誤記ですので、それらを修正すればOKですよ。

#include <stdio.h>

int main(){
int x = 5;
int y = 8;
printf("%d * %d = %d\n" , x,y, x * y);
x = 3 ;
y = 11;
printf("%d * %d = %d\n" , x,y, x * y);
return 0;
}
    • good
    • 0
この回答へのお礼

親切なご回答誠にありがとうございました。
単純なミスの連続で
 お騒がせしました。
基本的なしっかり見る力がまだまだ私には無いようです。

お礼日時:2014/12/30 15:23

正確にいうとそれは「直訳」ではない.



Line 8: error: redefinition of 'y'
を「正しく」直訳すると
8行目:エラー: 'y'の再定義
である.
    • good
    • 0

>転記ミスでしょうか?



自分の書いたものとC言語プログラミング講座第二回 - 計算と変数 -のものをよく見比べればわかること。
    • good
    • 0

転記ミスです。

ビデオのプログラムには無いものがあなたのプログラムにはあります。

int y = 11;
という文はそのビデオの前のほうで説明している通り
int y;
y = 11;
の略記です。……本当は違うんですが、まあこのビデオ講義の段階ではいったんそう思っていてください。
そして、前の方に
int y = 8;
というのがありますよね。それも上記のように分けて書くと、
int y;
y = 8;
となります。つまり、"int y;" という記述が複数回あらわれているわけで、それがエラーの原因です。

……というか、おめでとうございます。あなたは「いったん定義された変数と同じ名前の変数をもう一度定義しなおすことはできない」という事を体感できたのです。
実際には変数のスコープという概念があってそれによって新たに定義できることもあるのですが、そんなことをしてもただ単にソースがわかりづらくなるだけなので普通はやりません。
    • good
    • 0

>転記ミスでしょうか?


転記ミスですよ。

8行目:エラー: 'Y'の再定義といわれているように、
int y = 11;
ではなく、 int は不要で
y = 11;
となっていますよ。

この回答への補足

ご回答ありがとうございました
 intは蛇足でした。
 それでは
 intがなかったらOKですかね
  よろしくお願いします。

補足日時:2014/12/23 17:52
    • good
    • 0

なんで参考書、入門書を買わないのですか?


質問を初めて見てからかなりの時間が経過しているが、まだここの部分の課題なのですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!