
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ランキング
-
ExcelVBAでのkernel32(64bit)
-
init関数の意味
-
参照型で受け取った引数をポイ...
-
自作関数の引数
-
VC++6.0 MFC ダイアログバーを...
-
基本アルゴリズムの『返す』の...
-
NULLとブランクの違い
-
戻り値で構造体を返すことは可...
-
LPSTR型の初期化について
-
関数ポインタの利点
-
ハンドルはポインタか
-
Run-Time Check Failure #3とい...
-
#define NULL ((void *)0) の弊害
-
ポインタのポインタとrealloc
-
CWnd::EnableWindow()の扱い方
-
CImage GetBitsメソッドについて
-
関数の引数をvoid*でキャストする
-
無効なポインタ操作のエラー
-
fopne で失敗する原因
-
セグメントエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインタに直接アドレス...
-
init関数の意味
-
セグメントエラー
-
Run-Time Check Failure #3とい...
-
ExcelVBAでのkernel32(64bit)
-
戻り値で構造体を返すことは可...
-
fopne で失敗する原因
-
参照型で受け取った引数をポイ...
-
トリプルポインタが必須!とな...
-
ハンドルはポインタか
-
LPSTR型の初期化について
-
ポインターの使用法や利点
-
ポインタについて
-
c言語で任意のファイルから読み...
-
基本アルゴリズムの『返す』の...
-
コンストラクタでnewを失敗した...
-
ハンドル、アドレス、ポインタ...
-
アプリを32bitから64bit移行
-
デバイスハンドルとは?
-
NULLとブランクの違い
おすすめ情報