質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

3回答

2461閲覧

C言語 二分法 √2の値

C0dalice

総合スコア11

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2020/07/01 07:44

編集2020/07/01 07:55

#include<stdio.h>
int main()
{
double x_upper;
double x_lower;
x_upper=2;
x_lower=1;
double x;
while(x_upper-x_lower>1e-10)
{
x=(x_upper+x_lower)/2;
if((x*x-2)>0)
x_upper=x;
else
x_lower=x;
}
printf("%lf",x);

}

このプログラムで,√2の値が得られると思ったのですが,timeoutになってしまいました.改善点を教えていただけたらと思います.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Penpen7

2020/07/01 07:46

intにしてる変数は全部double型にしないといけないのでは?
pepperleaf

2020/07/01 12:11

修正済みのようですが、そのように、編集と自己解決として、閉じましょう。
guest

回答3

0

自己解決

int→doubleの初歩的な間違えでした.f(x)=x^2-2の方法も大変よくわかりました.ありがとうございました.

投稿2020/07/02 02:51

C0dalice

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ご質問のコードでちゃんと動いているのでは?
デバッグが面倒なので勝手にf(x)=x^2-2という関数を作りました。
cosx=0も解けたのでいいのではないでしょうか。(pi<x<2*piの範囲で)
(この実装だとf(2)>0 f(1)<0の関数を仮定しないといけないけど)

c

1#include <stdio.h> 2double f(double x) 3{ 4 return (x*x-2.0); 5} 6int main() 7{ 8 double x_upper; 9 double x_lower; 10 x_upper = 2.0; 11 x_lower = 1.0; 12 double x; 13 while (x_upper - x_lower > 1e-10) { 14 x = (x_upper + x_lower) * 0.5; 15 if (f(x)>0) 16 x_upper = x; 17 else 18 x_lower = x; 19 } 20 printf("%12.11lf", x); 21}

text

11.41421356233

文献値(https://ja.wikipedia.org/wiki/2%E3%81%AE%E5%B9%B3%E6%96%B9%E6%A0%B9#%E6%A6%82%E8%AA%AC)

text

11.414213562373095048...

投稿2020/07/01 08:40

編集2020/07/01 08:53
Penpen7

総合スコア698

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

while(x_upper-x_lower>1e-10)

x_upperもx_lowerもint型ですが、それはいいんでしょうか

投稿2020/07/01 07:48

y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問