100例(2)のC言語プログラミング:二次方程式

実施例2二次方程式

説明[タイトル]

式AXの入力係数a、bおよびc、2 + BX + C =ルートの0。

[入力形式]

入力データの複数のセット。3つの係数A、B、Cを含むデータの各セット。= 0のとき、入力データが完成します。

[出力形式]

出力方程式の根は、2桁までに予約サンプル出力フォーマットを参照してください。

[サンプル入力】

1 2 1

1.0 -4.0 3.0

1.5 2.0 1.5

0 0 0

[サンプル出力]

X1 = X2 = -1.00

X1 = 3.00、X2 = 1.00

X1 = -0.67 + 0.75i、X2 = -0.67-0.75i

        (1)プログラミングのアイデア。

        入力係数は、0に等しくなく、両方の場合に0が等しく分けることができます。

        場合== 0、入力の終了が計算されます。

        プログラムは入れ子構造に書き込むことができます。

        (2)ソース。

書式#include <stdio.hに>

書式#include <math.h>の

メインint型()

{

    ダブルA、B、C、DLT、本物の、IMAG、X1、X2;

    一方、(1)

    {

        scanf関数( "%LF%LF%LF"、&、&B、&C)。

        (== 0)ブレークであれば、

              DLT = B * B-4 * C。

              (DLT> 0)であれば

              {

                  X1 =( - B + SQRT(DLT))/(2 * A)。

                  X2 =( - B-SQRT(DLT))/(2 *)。

            printf( "X1 =%2F、X2 =%2F \ n"、X1、X2)。

              }

        それ以外の場合(DLT == 0)

              {

                     X1 = X2 =( - B)/(2 * A)。

                     printf( "X1 = X2 =%2F \ n"、X1)。

              }

        他

              {

                  実=( - B)/(2 *)。

                  IMAG = SQRT(-dlt)/(2 * A)。

            ( "。。。X1 =%2F +%2fi、X2 =%2F - %2fi \ n" は、本物の、IMAG、本物の、IMAG)のprintf。

              }

       }

    0を返します。

}

 

問題2

2-1三角形領域

説明[タイトル]

任意の入力三辺(A、B、Cの実数)は、三角形構成場合、面積が計算され、出力、または、出力フラグが「いいえトライアングル!」。

トライアングルエリアの式:

       

 [入力形式]

入力データの複数のセット。データの各セットは、三角形の3辺の代表的な3つの数字、B、C、から成ります。= 0のとき、入力データが完成します。

[出力形式]

出力三角形の面積は2桁までに予約します。またはNOトライアングル!情報は、場合、与えられた値の三辺は、三角形を構成することができません。

[サンプル入力】

3 4 5

6.0 6.0 6.0

1 1 3

0 0 0

[サンプル出力]

6.00

15.59

ノートライアングル!

        (1)プログラミングのアイデア。

3つの入力数、三角形を形成するだけの+ B> C、A + C> BとB + C>出会うのA、B、C。このように、構造を選択することにより、

IF(+ B> C && A + C> B && B + C> A)

      {三角形領域を計算して出力します;}

      他

      {出力プロンプト情報を三角形を形成することができません;}

      (2)ソース。

書式#include <stdio.hに>

書式#include <math.h>の

メインint型()

{

    sは、A、B、C、Tフロート。

    一方、(1)

    {

        scanf関数( "%F%F%F"、&、&B、&C)。

        (== 0)ブレークであれば、

        IF(+ B> C && A + C> B && B + C> A)

        {

           T =(+ B + C)/2.0。

           S = SQRT(T *(TA)*(TB)*(TC))。

           printf( "%2F \ n"、S)。

        }

        他

           printf( "いいえトライアングル\ N!");

       }

    0を返します。

}

暁2-2家庭用電気

        この質問はロス・バレー試験(https://www.luogu.org/problem/P1422)から選択されます。

説明[タイトル]

夏、そして各家庭の電力消費量は、ポストよりも、対応する電気を大量に増加しています。暁の家は、今日は予告電力を受け取りました。以下のセクションでは、いくつかあたり151〜400キロワット時で毎月の電力消費を行っキロワット時0.4463元当たり150キロワット時27号[2006]最小の原子価要件によれば、毎月の消費電力:暁には、上方に書き込ま参照しますkWhの0.4663元の実行、毎月の電力消費量401キロワット時とkWh 0.5663元の実行あたりの部品;暁が自分自身をテストしたい、最終的に電気代の関税の数支払わ通知は、それが正しいです。価格規制に従って、総電力知られているプログラムを、書く、計算された支払う電気がなければなりません。

[入力形式]

(キロワット時の単位で)総電力を示す整数ではなく、10,000を超えます。

[出力形式]

(小数点に予約さドルで1つの単位)数の出力後、小数点以下を保持していました。

[サンプル入力】

267

[サンプル出力]

121.5

        (1)プログラミングのアイデア。

        3つの勾配の課金ルールに分割されているXの毎月の消費の場合。

       最初の勾配(x <= 150)、第一電気Y = *電力の勾配原単位= 0.4463 * X。

        第二の勾配(150 <x <= 400)、電気の最初のユニットの勾配の第二の部分のY =電力*電力第二傾斜部+ *電力の第1の傾きの勾配パワーユニット=(X-150)* 0.4663で+ 150 * 0.4463。

        第三の勾配(X> 400)、電気の第三の勾配第1の電気の最初の勾配の電力+勾配の第二の電気部品ユニットの勾配の* + *第二の部分の勾配Y =電気パワーユニット部の第3の部分で*電気の勾配単位=(X-400)* 0.4463 * 0.5663 + 250 * 0.4663 + 150。

        シンプルな多分岐構造を解消することができます。

        (2)ソース。

書式#include <stdio.hに>

メインint型()

{

    int型のx;

       ダブルY;

       scanf関数( "%のD"、&x)は、

       もし(x <= 150)、Y = 0.4463 * X。

       他の場合(X <= 400)、Y = 150×0.4463 +(X-150)* 0.4663。

       そうでなければ、Y = 150×0.4463 + 250 * 0.4663 +(X-400)* 0.5663。

       printf( "%1LF \ n"、Y);

       0を返します。

}

 

2-3 P1909購入鉛筆

         この質問はロス・バレー試験(https://www.luogu.org/problem/P1909)から選択されます。

説明[タイトル]

P nは教師は、子どもたちがNOIPのギフトを参加として鉛筆を買いに店に行く必要があります。彼女は店に異なる可能性が異なるパッケージの数に鉛筆、鉛筆をパッケージの3種類の合計を見つけ、価格が異なる場合があります。公平を期すためには、Pの先生は鉛筆の同じパッケージを購入することを決めました。

Pの先生は以上のn子供たちが贈り物を送信するための十分な鉛筆を購入する必要があるかもしれませんので、お店は、オープン鉛筆のパッケージに許可されていません。

今Pの先生は各パッケージ内の店舗数は、ITコストどのくらいのn鉛筆の最小を購入するのに十分少なくとも、十分なものであるとき、知りたいと思いました。

[入力形式]

最初の行は、正の整数nを含んでいる、鉛筆の数が必要。

2つの正の整数に包装鉛筆で次の3つの行は説明:最初の整数は、パッケージ内に数1鉛筆を表し、2番目の整数は、そのようなパッケージの価格を表します。

すべての正の整数7が10,000以上でないことを確認してください。

[出力形式]

それは少なくともPの先生にかかるお金を表す整数。

[サンプル入力】

57

2 2

50 30

30 27

[サンプル出力]

54

           (1)プログラミングのアイデア。

         先生の鉛筆購入のレッツP数は、特定のパッケージ内の鉛筆の数は、このようなパッケージの価格bは、nです。パッケージ番号Pの先生は鉛筆cのパッケージを購入する必要があります。

         明らかに、nがで割り切れるならば、C = N /;そうでなければ、C = N / A + 1。

         最小値c * Bにパッケージの3種類を探しています。

  (2)ソース。

書式#include <stdio.hに>

メインint型()

{

    INT、N、A、B、C、I、分。

    scanf関数( "%のD"、&N);

    scanf関数( "%D%D"、&、&B)。

       IF(N%== 0)、C = N /。

       他のC = N / + 1。

    分= B * C。

       ための式(I = 1; I <= 2; I ++)

       {

           scanf関数( "%D%D"、&、&B)。

         IF(N%== 0)、C = N /。

           他のC = N / + 1。

        もし(MIN> C * B)分= C * B。

       }

       printf( "%dの\ n" は、分)。

       0を返します。

}

 

おすすめ

転載: www.cnblogs.com/cs-whut/p/11840468.html