2つの点の座標を入力し、2点間の距離を表示させるプログラムを作成中なのですが、コンパイルをするとなぜか距離が0.00000・・・と表示されてしまいます...
一応、完成したつもりですが間違いがあればご指摘よろしくお願いします!!
include<stdio.h>
#include<math.h>
double distance(int x1,int y1,int x2,int y2)
{
return sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
}
int main(void)
{
int x1,y1,x2,y2;
double kyori;
printf("<点1>\n");
printf("x座標:");
scanf("%lf",&x1);
printf("y座標:");
scanf("%lf",&y1);
printf("<点2>\n");
printf("x座標:");
scanf("%lf",&x2);
printf("y座標:");
scanf("%lf",&y2);
kyori=distance(x1,y1,x2,y2);
printf("<2点間の距離>\n");
printf("距離:%lf\n",kyori);
return 0;
}
間違えが見つけられません...
Re:間違えが見つけられません...
2点の座標値は整数ですか?浮動小数点数ですか?
今のコードでは、どちらにしたいのかがわかりません。
なお、「なぜか距離を0.00000...と表示する」という状態であるのに
「一応完成したつもり」とは言えません。
今のコードでは、どちらにしたいのかがわかりません。
なお、「なぜか距離を0.00000...と表示する」という状態であるのに
「一応完成したつもり」とは言えません。
C言語歴一ヶ月です
初めまして、本サイト様の龍神録プログラミングの館で勉強をさせていただいているものです。
どうしても、わからない所があるので質問させてください。
龍神録プログラミングの館から一括ダウンロードしたプロジェクトの21章の中の自機と敵機の絵を自分のに変えるために、絵の表示のアニメーションをなくそうとして、load.cppの
LoadDivGraph( "../dat/img/char/0.png" , 12 , 4 , 3 , 73 , 73 , img_ch[0] ) ;
から
img_ch[0] = LoadGraph( "../dat/img/char/0.png");
と変えて
GV.hの変数宣言部の
GLOBAL int img_ch[12][2];
を
GLOBAL int img_ch;
に書き変えたのですが、
c:\documents and settings\yuki\デスクトップ\project\project\21章\mydat\source\graph.cpp(22) : error C2109: 配列または、ポインタでない変数に添字が使われました。
というエラーが出ました。
どうすれば、絵のアニメーションをなくして一枚絵で表示できるでしょうか?どなたか教えてください。
どうしても、わからない所があるので質問させてください。
龍神録プログラミングの館から一括ダウンロードしたプロジェクトの21章の中の自機と敵機の絵を自分のに変えるために、絵の表示のアニメーションをなくそうとして、load.cppの
LoadDivGraph( "../dat/img/char/0.png" , 12 , 4 , 3 , 73 , 73 , img_ch[0] ) ;
から
img_ch[0] = LoadGraph( "../dat/img/char/0.png");
と変えて
GV.hの変数宣言部の
GLOBAL int img_ch[12][2];
を
GLOBAL int img_ch;
に書き変えたのですが、
c:\documents and settings\yuki\デスクトップ\project\project\21章\mydat\source\graph.cpp(22) : error C2109: 配列または、ポインタでない変数に添字が使われました。
というエラーが出ました。
どうすれば、絵のアニメーションをなくして一枚絵で表示できるでしょうか?どなたか教えてください。
Re:C言語歴一ヶ月です
img_ch[0] = LoadGraph( "../dat/img/char/0.png");
少なくともこれは
img_ch = LoadGraph( "../dat/img/char/0.png");
であると思います。
少なくともこれは
img_ch = LoadGraph( "../dat/img/char/0.png");
であると思います。
Re:C言語歴一ヶ月です
>おそらくエラーが出ている行で
img_ch[j]
見たいな事をやっていると思うので
img_ch
に変えれば良いと思います
>img_ch[0] = LoadGraph( "../dat/img/char/0.png");
少なくともこれは
img_ch = LoadGraph( "../dat/img/char/0.png");
であると思います。
おっしゃられた通りに
img_ch[0] = LoadGraph( "../dat/img/char/0.png");
を
img_ch = LoadGraph( "../dat/img/char/0.png");
に書きかえ、エラーが出ているgraph.cppの
DrawRotaGraphF(ch.x+FIELD_X,ch.y+FIELD_Y,1.0f,0.0f,img_ch[0][ch.img],TRUE);
を
DrawRotaGraphF(ch.x+FIELD_X,ch.y+FIELD_Y,1.0f,0.0f,img_ch[ch.img],TRUE);
に書きかえたのですが、エラーに変化はありませんでした。
どうしたらよいのでしょうか?
img_ch[j]
見たいな事をやっていると思うので
img_ch
に変えれば良いと思います
>img_ch[0] = LoadGraph( "../dat/img/char/0.png");
少なくともこれは
img_ch = LoadGraph( "../dat/img/char/0.png");
であると思います。
おっしゃられた通りに
img_ch[0] = LoadGraph( "../dat/img/char/0.png");
を
img_ch = LoadGraph( "../dat/img/char/0.png");
に書きかえ、エラーが出ているgraph.cppの
DrawRotaGraphF(ch.x+FIELD_X,ch.y+FIELD_Y,1.0f,0.0f,img_ch[0][ch.img],TRUE);
を
DrawRotaGraphF(ch.x+FIELD_X,ch.y+FIELD_Y,1.0f,0.0f,img_ch[ch.img],TRUE);
に書きかえたのですが、エラーに変化はありませんでした。
どうしたらよいのでしょうか?
Re:C言語歴一ヶ月です
他にも書き直していない所があると思うのですが
とりあえず
DrawRotaGraphF(ch.x+FIELD_X,ch.y+FIELD_Y,1.0f,0.0f,img_ch[ch.img],TRUE);
は
DrawRotaGraphF(ch.x+FIELD_X,ch.y+FIELD_Y,1.0f,0.0f,img_ch,TRUE);
では?
とりあえず
DrawRotaGraphF(ch.x+FIELD_X,ch.y+FIELD_Y,1.0f,0.0f,img_ch[ch.img],TRUE);
は
DrawRotaGraphF(ch.x+FIELD_X,ch.y+FIELD_Y,1.0f,0.0f,img_ch,TRUE);
では?