
c言語の勉強を のんびりやっています。
オライリージャパン C実践プログラミング 第3版P84 実習6-1
2点間の距離を算出するプログラムを作ってみました。
/*------------------------------------------------------------------
プログラム名 j06-1.c
2点の座標 (x1,y1)(x2,y2)を与え、距離を計算する
入力は、数 スペース 数 スペース 数 スペース 数 エンター
--------------------------------------------------------------------*/
#include <stdio.h>
#include <math.h>
charline[100] ;/*入力行*/
intx1, y1, x2, y2; /* 座標 */
floatdistance; /*距離*/
int main(void)
{
distance = 0;
printf("Enter coordinates \n");
fgets(line, sizeof(line), stdin);
sscanf(line, "%d %d %d %d", &x1, &y1, &x2, &y2);
distance = ((x1 - y1)*(x1 - y1)+(x2- y2)*(x2 - y2));
printf("Distance is %f \n", sqrt(distance));
return 0;
}
Microsoft Visual C++ (ver6)でコンパイルすると次のエラーメッセージが出ます。
--------------------構成: j06-1 - Win32 Debug--------------------
コンパイル中...
j06-1.c
C:\c_program_file\j06-1.c(16) : error C2373: 'y1' : 再定義されています。異なる型修飾子です。
c:\program files\microsoft visual studio\vc98\include\math.h(435) : 'y1' の宣言を確認してください。
C:\c_program_file\j06-1.c(26) : error C2113: ポインタ以外からポインタを減算することはできません。
C:\c_program_file\j06-1.c(26) : error C2113: ポインタ以外からポインタを減算することはできません。
cl.exe の実行エラー
j06-1.obj - エラー 3、警告 0
どうしてエラーになるのでしょう。
y1をy01などにすると実行できます。
ご存じの方教えて下さい。
No.1ベストアンサー
- 回答日時:
>c:\program files\microsoft visual studio\vc98\include\math.h(435) : 'y1' の宣言を確認してください。
そういう名前の関数が定義されているから…でしょう。
http://rarara.cafe.coocan.jp/cgi-bin/lng/vc/vcln …
もう少し、変数名に工夫をこらすべき…かと。
ありがとうございました。
やはり、よくご存じの方のアドバイスは必要です。
しばらく悩んでおりました。
コンパイラがおかしいのかと。
納得しました。
これに懲りて
y1 yn y0
は、変数に使わないようにします。
これで、次の問題に進めます。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HOSTENT構造体を宣言する必要は...
-
ポインタに ~0を入れること
-
戻り値で構造体を返すことは可...
-
CopyMemory()をmemcpy()に書き...
-
C言語でのconstを返す関数
-
関数のパラメタ(C++)
-
基本アルゴリズムの『返す』の...
-
ExcelVBAでのkernel32(64bit)
-
C言語の文字列?処理 strcpyやl...
-
I/Oレジスタアドレスを関数に引...
-
VBAのプログラムで、DIAG = 1# ...
-
プログラムによく出てくるst...
-
C言語 配列の長さの上限
-
C# DataTableの行をソートしてD...
-
C++で、メンバもヒープに確保さ...
-
c言語のポインタへの文字列入力...
-
銀行ATMの数字キーの配列
-
C#で構造体の配列を持った構造...
-
newしないオブジェクトについて
-
Integer変数をカラにしたいので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインタに直接アドレス...
-
init関数の意味
-
Run-Time Check Failure #3とい...
-
ExcelVBAでのkernel32(64bit)
-
セグメントエラー
-
#define NULL ((void *)0) の弊害
-
fopne で失敗する原因
-
LPSTR型の初期化について
-
トリプルポインタが必須!とな...
-
戻り値で構造体を返すことは可...
-
c言語で任意のファイルから読み...
-
参照型で受け取った引数をポイ...
-
ポインタについて
-
アプリを32bitから64bit移行
-
ハンドル、アドレス、ポインタ...
-
ポインタが文字化けしてる?!...
-
NULLポインタが0でない処理系と...
-
ハンドルはポインタか
-
リトルエンディアンというもの...
-
【C言語】戻り値が構造体の関数
おすすめ情報