No.1ベストアンサー
- 回答日時:
自ら「簡単な関数のみでできると思います」と言っているのならなぜ書かないんだろうと思いつつ.
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c;
scanf("%lf%lf%lf", &a, &b, &c);
b /= 2;
double d = b*b-a*c;
double x = -b/a;
double y = fabs(sqrt(fabs(d))/a);
if (d > 0) {
double x1 = (x > 0) ? x+y : x-y;
double x2 = c / (a*x1);
printf("Two real zeros: %lf and %lf\n", x1, x2);
} else if (d < 0) {
printf("Two complex zeros: %lf +/- i%lf\n", x, y);
} else {
printf("Double zero: %lf\n", x);
}
return 0;
}
有難う御座います。
途中までは考える事が出来たのですが、あまりに自分のプログラムの効率の悪さに、諦めてしまいました。
参考にして頑張ってみようと思います。
No.4
- 回答日時:
#3さんのプログラムを参考にして、#2さんのような出力結果がでるようにしてみました。
もっときれいなプログラムになるとは思いますが、参考にしてみて下さい。#include<stdio.h>
#include<math.h>
int main(){
int x,y,z;
int a,b,c;
scanf("%d%d%d",&x,&y,&z);
a=-1*y;
b=y*y-4*x*z;
c=2*x;
printf(" -%d",a);if(b==0){printf("\n");}else{printf("±");matome(b);}
printf(" --------\n");
printf(" %d \n",c);
}
matome(int k){
int i,j;
if(k<0){
k=-1*k;
for(i=(int)sqrt(k);i>=1;i--){
if(k%(i*i) == 0)break;
}
j=k/(i*i);
printf("%d√%d",i,j);printf("i\n");
}else{
for(i=(int)sqrt(k);i>=1;i--){
if(k%(i*i) == 0)break;
}
j=k/(i*i);
printf("%d√%d\n",i,j);
}
}
2次方程式の解を値として必要なプログラムならば#1さん
ようにしなけれいけないんだけど、解を表示するだけならこっちほうが見た目わかりやすと思います。
アドバイス有難う御座います。
参考プログラムまで作って頂いて本当に助かります。
ちゃんと自分で理解して、プログラムを作ってみようと思います。
それでは。失礼致します。
No.3
- 回答日時:
> そこまで考えたんですけど、√の中身まで出せるでしょうか?
どうして出来ないと思われるんでしょ?
もしあなたが、√72 を 6√2 に変形出来ないのなら
しかたないですがね (^^;)
shiro0102 さんは、計算する時、ある一定の手順に従っていません?
その手順どおりにプログラムすればいいわけです。
√c = a√b
になるとすると
c = a * a * b
ということですので、これを満たす最大の a を見つければいいわけです。
下記のプログラムは逐一調べていくので非効率ですが・・・
int a, b, c;
c = 72;
for(a = (int)sqrt(c); a >= 1; a --){
if(c % (a * a) == 0) break;
}
b = c / (a * a);
printf("√%d = %d√%d\n", c, a, b);
# あっ、あくまで整数の世界の話です
# 実数なら、分数(分母と分子)に分けて
# 計算しなくてはなりません
有難う御座います。
そうですね、そのようにすれば求めることができるのですね…
まだプログラミングを始めて日が浅いので、自分でプログラムを生かすことが上手く出来ません。
プログラムの世界は広いのですね…
それでは、有難う御座いました。課題提出まで、頑張ってみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 高校 方程式の証明 5 2022/05/12 09:29
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/03/04 09:54
- 数学 数学3の式と曲線の、媒介変数表示の曲線の問題で、わからない点がございます。 次の媒介変数表示された曲 3 2022/04/21 14:52
- 数学 『因数に分解するということ』 9 2022/06/27 06:14
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- 宇宙科学・天文学・天気 AIが答えた方程式 1 2023/02/20 00:12
- Excel(エクセル) エクセルの数式で教えてください。 3 2023/03/16 11:19
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/10 13:21
- 数学 2次方程式の「(x-3)^2=4」を解くとき、 そのまま解くことも可能ですが A=x-3と置いて、A 3 2023/01/27 18:20
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
4の倍数を論理演算で表す。。
-
10個出力で改行したいのですが...
-
小数点切捨て表示
-
コーディング
-
scanfに文字が入力されたときに...
-
コマンドラインに出力した文字...
-
【C言語教えてください】sin波...
-
printf で二進表示を行いたい。
-
strcmp
-
C言語のじゃんけんゲームのプロ...
-
2の累乗を計算するプログラム...
-
srand(time(NULL))の使い方
-
c言語 プログラム ピラミッド
-
Cプログラムについて
-
円の面積を求めるプログラミン...
-
cshの文字列操作(0埋め)
-
defineで定数が置き換えられな...
-
unsigned int型について
-
パスカルの三角形についてのCプ...
-
Cでオセロゲームプログラム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
既約分数の表示プログラム
-
printf で二進表示を行いたい。
-
8人分のテストの点数を入力し、...
-
printf( " %2d", p * q );
-
strcmp
-
CTRL+Dでループを抜けるには
-
4の倍数を論理演算で表す。。
-
%P と %X の違い
-
【C言語教えてください】sin波...
-
c言語でAからZまでを表示する...
-
cshの文字列操作(0埋め)
-
万年カレンダーのC言語プログラ...
-
コマンドラインに出力した文字...
-
scanfに文字が入力されたときに...
-
コンパイルエラーについて
-
ホームページをC言語で作りたい...
-
改行について 1行に何個かづ...
-
台形の面積を求めるプログラム
-
なぜgccはstdio.hをインクルー...
おすすめ情報