※ ChatGPTを利用し、要約された質問です(原文:C++でのプログラムについての質問です)
C++で二次関数の解を求めるプログラムを作成する方法
このQ&Aのポイント
C++で二次関数の解を求めるプログラムを作成する方法を説明します。
プログラム内の自作関数solveをvoid solve(double, double, double)の形式で変更し、同じ動作をするように変更する方法を教えてください。
質問者は、二次方程式の係数を入力し、解を求めるプログラムを作成しましたが、自作関数の形式を変更したいとのことです。
このような二次関数の解を求めるプログラムを作成したのですが、自作関数solveをvoid solve(double, double, double)のように変更し同じ動作をするように変更したいです
どのようにへんこうすればよいでしょうか
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(void)
{
double a, b, c; /*二次方程式の定数*/
double D, x1, x2, r1, r2;
printf("ax^2 + bx + c = 0 の係数 a, b, c を入力してください---> \n");
scanf_s("%lf %lf %lf", &a, &b, &c);
printf("2次方程式を解いた結果は次の通りとなる。\n");
if (a == 0.0)
{
if (b == 0.0)
{
printf("係数がおかしい\n");
exit(-1);
}
{
x1 = -c / b;
printf("解は%f です。\n", x1);
exit(0);
}
}
else
{
D = b * b - 4 * a * c;
if (D >= 0)
{
x1 = (-b + sqrt(D)) / (2.0 * a);
x2 = (-b - sqrt(D)) / (2.0 * a);
if (D == 0.0)
{
printf("解は %f です。\n", x1);
}
else
{
printf("解は %f と %f です。¥n", x1, x2);
}
}
else
{
r1 = -b / (2 * a);
r2 = sqrt(-D) / (2 * a);
printf("解は%.2f+%.2fi と%.2f-%.2fi \n", r1, r2, r1, r2);
}
}
return 0;
}
お礼
できました ありがとうございます!