ページ 11

プログラムを正しい値を出力するように・・・

Posted: 2011年11月22日(火) 04:00
by takeru
下記のプログラムをちゃんと動作し正しい値を出力するようにしたいのですがどうしてらいいのか分かりません。
どなたか教えてください。

コード:

 
#include<stdio.h>
#include <math.h>
void shoriA(double a,double b,double c) 
{
    double x,y,d,i;
    if(a==0 && b==0){
    	printf("不能\n");
    }
    if(a==0 && b!=0){
    	i=-c/b;
	printf("一次式:%f\n",i);
    }
    d=b*b-4*a*c;
    x=(-b)/(2*a);
    y=sqrt(abs(d))/(2*a);
    if(d>0){
    	printf("実数解:%f,%f\n",x+y,x-y);
    }
    if(d==0){
    	printf("重解:%f\n",x);
    }
    else{
    	printf("虚数解:%f,%f\n",x,y);
    }
}
int main(void)
{
	double a,b,c;
	while (1){ 
	printf("整数a:");  scanf("%d", &a);
	printf("整数b:");  scanf("%d", &b);
	printf("整数c:");  scanf("%d", &c);
	if(a==0 && b==0 && c==0){
		break;
	}
	shoriA(a,b,c);
	}
	return(0);
}
ちなみに2次方程式を解くプログラムです。

Re: プログラムを正しい値を出力するように・・・

Posted: 2011年11月22日(火) 07:18
by beatle
使用しているコンパイラ名、バージョン、OS名と、あなたが期待している「正しい値」というのを教えて下さい。

Re: プログラムを正しい値を出力するように・・・

Posted: 2011年11月22日(火) 07:24
by beatle
質問の書き方としては
「今、このプログラムは〇〇という値を出力する(またはコンパイルエラーになる)が、△△という値を出力するようにしたい。
・・・と思ったのでここをこんな風に改造したら、☆☆という結果になってしまった。
次に~と思ったのでここをこんな風に改造したら、□□という結果になってしまった。」
のように書くといいかもしれませんね。
試行錯誤の結果が載っていると、質問者さんの思考法も少し把握できますから、より適切な回答を期待できます。

コレを書き終わってから、2重投稿に気が付きました。
どうしたらいいでしょうか。
http://dixq.net/forum/viewtopic.php?f=3&t=9610

Re: プログラムを正しい値を出力するように・・・

Posted: 2011年11月22日(火) 11:04
by softya(ソフト屋)
こちらを閉鎖しておきますので、もうひとつの方を使って下さい。