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

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

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

#1

投稿記事 by takeru » 14年前

下記のプログラムをちゃんと動作し正しい値を出力するようにしたいのですがどうしてらいいのか分かりません。
どなたか教えてください。

コード:

 
#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次方程式を解くプログラムです。

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

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

#2

投稿記事 by h2so5 » 14年前

どのような出力を期待していて、そして
どのように上手くいかないのかをきちんと明記してください。

とりあえず、scanfのフォーマット指定子を復習してみるといいことがあるかもしれません。

アバター
asd
記事: 319
登録日時: 15年前

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

#3

投稿記事 by asd » 14年前

既にh2so5さんの指摘もありますが、何を与えたときに、どういう結果が出るはずなのに、実際にはこんな結果になる
というのを明記してください。

あと、以下のスレッドにてどういうプログラムを完成させたのか報告した上で解決したのであれば解決マークをつけていただけないでしょうか。
同じような問題で困っている人の助けになりますので。

http://dixq.net/forum/viewtopic.php?f=3&t=9574

(追記)
完成したプログラムは次のページに記載されていたのを見落としていたので撤回します。
解決したのであれば解決のチェックをお願いします。
最後に編集したユーザー asd on 2011年11月22日(火) 17:34 [ 編集 1 回目 ]
Advanced Supporting Developer
無理やりこじつけ(ぉ

アバター
asd
記事: 319
登録日時: 15年前

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

#4

投稿記事 by asd » 14年前

二重投稿となったもう一つの記事です。回答がついているので参考になれば。
http://dixq.net/forum/viewtopic.php?f=3&t=9609
最後に編集したユーザー asd on 2011年11月22日(火) 17:35 [ 編集 1 回目 ]
Advanced Supporting Developer
無理やりこじつけ(ぉ

naohiro19
記事: 256
登録日時: 15年前
住所: 愛知県

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

#5

投稿記事 by naohiro19 » 14年前

オフトピック
前のトピックはSoftyaさんにより閉鎖されました。

LAY

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

#6

投稿記事 by LAY » 14年前

というか
doubleの場合でscanfだと書式は%lfが正解
printfなどの出力関数は%fが正解だけど。ただprintfでlfが使えるのはC99以降

閉鎖

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