ニュートン法で平方根の近似値を求める問題です

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
tmmm

ニュートン法で平方根の近似値を求める問題です

#1

投稿記事 by tmmm » 11年前

C言語初心者です。
ニュートン法で平方根の近似プログラムを組んでいるのですが,
sqrt(a)=0.000000 と出てきてしまいます。

正しく表示させるにはどこをなおせばいいのでしょうか。
教えてください。



コード:

#include <stdio.h>

int main(void){


	double a, x, b, c;

	printf("Enter a:");
	scanf_s("%lf", &a);
	x = 1;

	for (;;){
		c = x*x;

		printf("x=%lf", x);
		printf("x*x=%lf\n", c);

		x = x - (x*x - a) / (2 * x);
		b = x*x - a;
		
		if ((b <= 0.00000001) && (b >= -0.00000001)){ break; }
	}

	printf("sqrt(a)=%lf\n", &x);

	return 0;
}

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: ニュートン法で平方根の近似値を求める問題です

#2

投稿記事 by usao » 11年前

>printf("sqrt(a)=%lf\n", &x);

&いらないような

tmmm

Re: ニュートン法で平方根の近似値を求める問題です

#3

投稿記事 by tmmm » 11年前

>>usaoさん

そうでした、printf関数なのでいらないですね、無知をさらしてしまいお恥ずかしい限りです。
指摘いただきありがとうございます!

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: ニュートン法で平方根の近似値を求める問題です

#4

投稿記事 by usao » 11年前

問題が解決したならば 解決チェックを付けてくださいね.

どのような状態まで作ったらゴールという話かにもよりますが,

・aに負の値が入力された場合はどうする?
・for(;;)みたいな,万が一の場合に無限ループになる恐れがある記述は避けた方がいいかも

というのがちょっと気になる点かも.

閉鎖

“C言語何でも質問掲示板” へ戻る