ページ 11

if文の中身教えてください

Posted: 2021年5月13日(木) 00:09
by sakaguchikakeru
2次方程式ax²+bx+c=0についてa,b,cの値を実数値として与えると2解を持つプログラムを作りなさい。
という問題で答えが「a b cの値を入力:1,1,-6」で「2解」となります。
ここまでしかできてないのですがif文の中身が分からないので教えてください。

コード:

#include<stdio.h>
int main(void){
double a, b, c, d;
printf("a b cの値を入力:");
scanf=("%lf%lf%lf", &a, &b, &c);
if()

Re: if文の中身教えてください

Posted: 2021年5月13日(木) 00:50
by みけCAT
if文の中身以前の問題ですね。

・「2解を持つプログラム」とは何か?2解を持つ「か判定する」プログラム?
・scanf は関数であり、そこに代入はできない
・例にはコンマが入っているのに、書式はそれに対応していない
 (例のコンマは入力ではなく出力の可能性があるので、間違っていると断定はできない)
・個人的には、とりあえず関数の最初の { に対応する } を書いておきたい

まずは作るプログラムの仕様 (どのような入力を受け入れ、どのような場合にそれぞれどのような出力をするか)
をはっきりさせましょう。

Re: if文の中身教えてください

Posted: 2021年5月13日(木) 00:54
by みけCAT
ポイントとなりそうなのが、

・a = 0 の場合の処理に注意!
・2進の内部表現で10進の実数をちょうど表せない場合があり、誤差に注意!

という点ですね。

Re: if文の中身教えてください

Posted: 2021年5月13日(木) 11:09
by sakaguchikakeru
分かりました。ちょっと頑張ってみます