![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
方程式2.0*pow(10,-15)*pow(38.6,x)-2.73-0.909x=0の解xを二分法により求め、それを”atai=××”と表示させるプログラムを書こうと思っているのですが、エラーがでてしまい、さらにどこを直していいかわかりません。
詳しい方がおられましたら、アドバイスをいただけたらと思います。よろしくお願いいたします。
<エラー内容>
「コンパイルしています...
tom.cpp
.\tom.cpp(34) : error C2668: 'pow' : オーバーロード関数の呼び出しを解決することができません。(新機能 ; ヘルプを参照)
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(575): 'long double pow(long double,int)' の可能性があります。
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(527): または 'float pow(float,int)'
C:\Program Files\Microsoft Visual Studio 8\VC\include\math.h(489): または 'double pow(double,int)'
引数リスト '(int, int)' を一致させようとしているとき
.\tom.cpp(34) : error C2059: 構文エラー : 'サフィックスが無効です。'
.\tom.cpp(34) : error C2146: 構文エラー : ';' が、識別子 'x' の前に必要です。
ビルドログは "file://c:\Documents and Settings\satoutakaaki\デスクトップ\file\tom\tom\Debug\BuildLog.htm" に保存されました。
tom - エラー 3、警告 0」
<プログラム>
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
double fx(double x);
int main (void){
double x1=-1000;
double x2=1000;
double xn;
double y;
int i=0;
for(i=1;i<100;i++)
{
xn=0.5*(x1+x2);
y=fx(xn);
if(y>0)
{x1=x1/2+x2/2;}
if(y<0)
{x2=x1/2+x2/2;}
i=i+1;
}
printf("atai=%f",xn);
return 0;
}
double fx(double x)
{
double z;
z=2.0*pow(10,-15)*pow(38.6,x)-2.73-0.909x;
return z;
}
No.3ベストアンサー
- 回答日時:
--
Visual C++ 2005 では、ISO 標準にさらに準拠するために大きく変更されています。pow(int, int) のオーバーロードは、使用できなくなりました。このオーバーロードを使用している場合、コンパイラは C2668 を発生することがあります。この問題を回避するには、最初のパラメータを double、float、または long double にキャストします。
--
ってことなので、最初のpow(10,-15)がエラーの原因です。
回避というか解消方法は既に#1/#2で出されている通りです。
No.2
- 回答日時:
ていうか、z そのものが不要で、fx() の本体は
return 2.0 * pow(10.0, -15.0) * pow(38.6, x) - 2.73 - 0.909 * x;
で十分かと。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C言語のマクローリン展開ローラン展開のコードについて 3 2022/12/15 14:45
- C言語・C++・C# プログラミングを教えて欲しいです。 配列aは、int a[9]={7,6,12,8,3,5,10,9 4 2022/12/19 23:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
C 開放してるのにエラー(doubl...
-
C言語でdouble型の小数点の引き...
-
方程式を2分法を用いて解くプロ...
-
C++で外積
-
long doubleの表示方法
-
C言語を実行すると-infが出てき...
-
doubleの変数にintとintの割り...
-
doubleは常に%lfとするべきなのか
-
qsortと動的確保の2次元配列
-
C言語 二分法 プログラム
-
C言語で-23乗を取り扱うには
-
浮動小数点の定数
-
Cプログラミングの質問です。
-
数値を指数部と仮数部に分離したい
-
正規分布の乱数生成
-
listに構造体を格納
-
c言語でDFTのプログラムを作成...
-
【C言語】二階微分方程式をル...
-
物体が往復する動きを作りたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
doubleの変数にintとintの割り...
-
float型とdouble型の変数の違い...
-
c言語で、繰り返し文の中で、0....
-
C言語を実行すると-infが出てき...
-
C言語 関数プロトタイプ宣言の...
-
C 開放してるのにエラー(doubl...
-
C言語の型による処理速度の違い
-
至急です! マクロ定義で #defi...
-
関数におけるif文とreturn文に...
-
c言語のプログラミングについて...
-
2分法で方程式の複数の解を自...
-
-1.#IND00と出てしまうのですが...
-
doubleは常に%lfとするべきなのか
-
C言語のpow関数の不具合
-
C言語で-23乗を取り扱うには
-
C言語で台形公式を使った二重積...
-
Cで3乗根を求める方法
-
sin(x)の近似について
-
2次方程式の解を求めるプログ...
おすすめ情報