アプリ版:「スタンプのみでお礼する」機能のリリースについて

C言語なうなんですが、コンパイルまでは行ったんですが、セグメントエラーを起こしてしまいます。初心者なのでどこがおかしいのかもわかりませんので、ご指摘いただけるとありがたいです。
以下がそれでゲソ。始点と終点を指定して線を描いてもらうプログラミングを目指す。

#include <stdio.h>
#include "../Glib/Glib.h"

int main(void)
{
int x1,y1,x2,y2;

printf("直線の始点の座標(x1,y1)のx1,y1を、間にカンマ','を入れて入力してください。");
scanf("%d" ,"%d" ,&x1 ,&y1);
printf("直線の終点の座標(x2,y2)のx1,y1を、間にカンマ','を入れて入力してください。");
scanf("%d" ,"%d" ,&x2 ,&y2);


G_init();

G_open(800,600,"Draw Line");

G_show();
G_black();

G_fillrect(0, 0, 800, 600);

G_flush();

printf("Return Key を押してください。\n");
getchar();

G_white();
G_fillrect(0, 0, 800, 600);


G_rgb(0,0,8);

void G_line(int x1, int y1, int x2, int y2);

G_flush();

printf("Return key を何回か押すと終了します。\n");
getchar();
getchar();

G_close();

return (0);
}

A 回答 (5件)

本題は終わっているようなものなのでもうどうでもいいんですが, 指摘されている部分を直すだけでは線は引かれないと思いますよ. 関数呼び出しになっていないところが 1箇所あります.


あと getchar もなんかあやしい. 「return key を何回か押すと」って書いてあるんだけど, 実際には「1回押すだけ」で終わっちゃうこともある.
以下は余談:
確かに「コンパイルまでは行ったんですが、セグメントエラーを起こしてしまいます」という表現がおかしいのは事実. 「セグメントエラー」がどの時点で出ているのかがわからん. とはいえ「コンパイルの意味がおかしい」ということはないですな. むしろ「C言語を作る」の方がはるかにおかしい. あと, 「特定セグメントに対応するコンバター」とか「セグメントの位置は、端末それぞれによっても異なる」というのはどのような処理系を想定した表現なんだろう.

この回答への補足

ありがとうございました。
scanfについては解決しました。

関数呼び出しというのはどの話でしょうか。

補足日時:2010/10/21 11:10
    • good
    • 0
この回答へのお礼

多分出来ました。ありがとうございました 。

お礼日時:2010/10/21 11:47

scanf( 書式指定文字列, 格納可変個引数 );


に対して
scanf("%d" ,"%d" ,&x1 ,&y1);
となってます。これでは書式文字列が"%d"で、格納可変引数が"%d" ,&x1 ,&y1です。
どう書くべきかはscanfの使いかたを勉強してください。
    • good
    • 0
この回答へのお礼

ありがとうございました。
scanfについては解決しました。

お礼日時:2010/10/21 11:08

>アナタの言う、「コンパイル」の意味は、かなりおかしいですよ。



そうかなぁ?そんな風には思わないですが…。

質問者さんへ:
scanf()の第1引数と第2引数以降の書き方を再度研究してみてください。
    • good
    • 0
この回答へのお礼

ありがとうございました。
scanfについては解決しました。

お礼日時:2010/10/21 11:08

scanf関数の使い方が間違っています。

この回答への補足

どう違っているんでしょうか?
詳しく教えていただけるとうれしいです。

補足日時:2010/10/20 20:45
    • good
    • 0

「C言語」と「コンパイル」または「コンパイラ」は全くの別モノです。



アナタが作った「C言語」をコンパイルした先、コンパイルしたい先によります。

通常、インタープリタで記載・実行できる・したものを「コンパイル」する場合、特定・個別の機種やフォーマットに移入するために、「インタープリタ=コンパイラ」のアプリを使用しますよね?

アナタの言う、「コンパイル」の意味は、かなりおかしいですよ。
どんなフォーマット、どんな端末にコンパイルするんですかぁぁぁぁぁぁぁぁぁぁぁぁぁ(笑)???

コンパイルする前に、特定セグメントに対応するコンバターを使用するべきでは???

セグメントの位置は、端末それぞれによっても異なるのに、アナタの場合、その基礎もできていないようです。

基礎から学ぶべきです。
    • good
    • 0
この回答へのお礼

そうなんですか…知りませんでした…

一応基礎から学ぶためにこの課題に取り組んでるわけなんですが、基礎の基礎というのがあるわけですね。
勉強不足なのは承知ですが、もっと勉強しようと思います…

お礼日時:2010/10/20 20:44

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