
このC言語でのプログラミングがsqrtのところで常にエラーしてしまいます。どこがおかしいのか、おしえてください。
問・三角形の三辺の長さを入力し、ヘロンの公式を利用して面積を求めなさい。
#include <stdio.h>
main()
{
double a,b,c,s,S;
printf("Enter 3 numbers");
scanf("%lf %lf %lf",&a,&b,&c);
s=(a+b+c)/2;
S=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area = %f\n",S);
}
[EOF]
常に表示されるエラー
(1)In fuction `main':
(2)type mismatch in implicit declaration for built-in function `sqrt'
(3)undefined reference to `sqrt'
お願いします。
A 回答 (5件)
- 最新から表示
- 回答順に表示

No.5
- 回答日時:
使用しているOSやコンパイラを書いていただくと、解決に結び付くかもしれません。
コンパイラによってはmathライブラリの結合を指定しなければなりません。
例えばgccならば
% gcc sqrt.c -o sqrt -lm
% ./sqrt
Enter 3 numbers3 4 5
area = 6.000000
のようにすると正しく実行できます。
No.4
- 回答日時:
sqrtとmath.hの関係はANo.1から3の方の通りです。
>a,b,cを3,4,5で入力すると、s=(a+b+c)/2が6になるはずなんですけど、やってみると1.5になっちゃうんです。
「scanf("%lf %lf %lf",&a,&b,&c);」で入力しているのに、「3,4,5」と入力できません、「3 4 5」などと空白で区切ってください。
「3,4,5」だとaに3を入力後、3のうしろの「,」をscanfで処理できないので、bとcに値はセットされていません、今回の場合b+cが0だったのでsは1.5になりました。
No.3
- 回答日時:
★アドバイス
>それでもできないんですよね~
↑
math.h をインクルードしても出来ないという事でしょうか?
>まだ授業ではmath.hを使用することは習っていないのでなくてもできるはずなんですが↓
↑
それなら『sqrt』関数は標準関数(math.h)ではなく自作しなさいという事になっていませんか?
それなら自分で平方根の計算をさせる関数を作ります。
ただ学校で先生が math.h のインクルードをしなさいと言うことを言い忘れていると困りますね。
先生などに確認してみてはどうでしょう。
『sqrt』関数は算術関数として標準関数(math.h)で用意されていますが、利用するには
math.h をインクルードしないとエラー(警告)がでます。
>これはパソコンに問題があるんでしょうか??
↑
パソコンには問題はありません。
問題は先生などの出題者でしょう。
先生に確認して下さい。
本当に math.h をインクルードしないでも計算(コンパイル)できるのか。
・以上。
No.2
- 回答日時:
★アドバイス
・sqrt() 関数が定義されていないからです。
この関数を使うには math.h というヘッダをインクルードしないと使えません。
よって
#include <math.h>
の1行を
#include <stdio.h>
の次の挿入して下さい。
再コンパイルすればエラーにはならないと思います。
・以上。なおC言語に関しては『C/C++』カテゴリがあります。
参考URL:http://oshiete1.goo.ne.jp/c250.html
NO.1さんのところでも書いたようにとりあえずできないんです!!
パソコンが悪いんでしょうか??
友達とは解答が一緒なのに・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# LU分解法のピボット選択機能実装について(C言語・gcc-9) 1 2022/07/22 15:20
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# LU分解法のピボッティングについて(C言語/gcc-9) 3 2022/07/11 23:10
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
コンパイルできません。
-
ビルド失敗 指定されたファイ...
-
Visual Studioのstrcpy_sについて
-
Excelのエラーで困ってます。
-
C2146を回避するにはどうしたら...
-
LPCWSTRとchar
-
HEWを使用しているのですが、こ...
-
EXEで実行すると発生するORA:06...
-
適切な変換関数が存在しない???
-
VisualC++でエラーが大量に
-
WindowsからLinuxへの移植
-
レコードセットをcloseする所で...
-
キーの自動入力
-
fortranでプログラムを実行する...
-
error C2143: 構文エラー の対処法
-
DLL関数を使ったプログラム
-
visual C++ でビルドの中止がで...
-
IOCTL_CDROM_RAW_RAEDで生デー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
バッチからsqlplusの接続エラー...
-
visual C++ でビルドの中止がで...
-
適切な変換関数が存在しない???
-
VB2008で定数に色の設定をした...
-
デバッグ中のエラーのことで教...
-
fortranでプログラムを実行する...
-
RightとLeft関数のライブ...
-
ビルド失敗 指定されたファイ...
-
Handlesについて
-
HEWを使用しているのですが、こ...
-
DLL関数を使ったプログラム
-
キーの自動入力
-
Visual Studioのstrcpy_sについて
-
コンパイルできません。
-
multiple definitionというエラー
-
ACCESSのDate関数のエラー表示...
-
WindowsからLinuxへの移植
おすすめ情報