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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonにおける物理のシミュレーションでの単位変換について 2 2023/06/02 17:11
- その他(プログラミング・Web制作) Pythonによる物理の斜方投射の位置座標表示について 2 2023/06/05 12:46
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- その他(プログラミング・Web制作) Pythonでのかんたんな物理シミュレーションについての書籍 5 2023/06/02 07:37
- 数学 数学直線の方程式とベクトル方程式について 直線の方程式で 点(x1,y1)を通り、直線ax+by+c 1 2022/08/12 12:13
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# 3×3のラテン方陣をつくるプログラムを作成したのですが、(↓) #include <stdio.h> 5 2023/07/10 01:53
- C言語・C++・C# ある線が円の範囲に入っているかの計算 1 2022/12/07 16:14
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セグメントエラー
-
Run-Time Check Failure #3とい...
-
init関数の意味
-
戻り値で構造体を返すことは可...
-
C言語のポインタに直接アドレス...
-
構造体とfscanf
-
C言語の関数と配列に関する質問
-
DLL<->VB間での受け渡し(文字...
-
fopne で失敗する原因
-
デバイスハンドルとは?
-
[excel vba] マウスポインタの...
-
この(C言語)ダブルポインタ...
-
gccでMAKEINTRESOURCEするとdif...
-
Linked List(線形リスト)を使...
-
nullポインタを逆参照とは?
-
ダイアログから、ドキュメント...
-
Wordでのリンク方法(Ctrlキー...
-
C言語ソースコードの解析
-
マイクロソフトマウスで「Wirel...
-
C言語でのconstを返す関数
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セグメントエラー
-
init関数の意味
-
C言語のポインタに直接アドレス...
-
fopne で失敗する原因
-
Run-Time Check Failure #3とい...
-
C言語の関数と配列に関する質問
-
LPSTR型の初期化について
-
戻り値で構造体を返すことは可...
-
参照型で受け取った引数をポイ...
-
構造体とfscanf
-
ExcelVBAでのkernel32(64bit)
-
アプリを32bitから64bit移行
-
Cで作成したDLL関数をVBから呼...
-
C言語でのconstを返す関数
-
main(int argc,char **argv[])...
-
DLL<->VB間での受け渡し(文字...
-
エラーの意味
-
PASCALとFARの意味
-
ハンドルはポインタか
-
CWnd::EnableWindow()の扱い方
おすすめ情報