C言語運動研究

C言語を一生懸命勉強している羊飼いの犬(C言語プログラムの100の古典)———— 2番目の質問

火曜日のクラスは驚くほど少ないので、ビッグブラザーへのオマージュです。今日は別のクラスを追加してビッグブラザーに追いつくことができます。≧◇≦

質問2:企業が発行するボーナスは利益手数料に基づいています。利益(I)が10万元以下の場合、ボーナスは10%増額できます。利益が10万元以上の場合、利益が20万元未満の場合、10万元未満の部分は10%の手数料となり、10万元以上となります。ココアの手数料は7.5%、200,000〜400,000元の部分は5%、400,000〜600,000の場合は40万元以上の部分は3%の手数料がかかります。 ; 60万〜100万元の場合、60万元以上の部分は1.5%、100万元以上の場合は1%で委託できます。キーボードから月額利益Iを入力してお願いします。配布されたボーナスの総数は?

アイデア:この質問をすると、これが中学校の関数アプリケーションの問題であることがはっきりとわかります。ピースワイズ関数の関連するプロパティを調べます。タイトルを取得すると、単語が多すぎて不快に感じることがあります。重要な情報の円、つまりセグメンテーションの条件を描き、対応する関係
ここに写真の説明を挿入
を記述します。プログラムの記述速度が半分の労力で結果の2倍になるように、関数をリストします。
解決策:この質問は、ifselectionステートメントまたはswitchselection loopステートメントを使用する必要があることは明らかです。個人的にはifを好みますが、現実は常に残酷です。問題がスイッチの処理方法を規定している場合は、歯を食いしばることしかできません。 、両方をもう一度実行します。Ah ah ah ~~ :-(

#include<stdio.h>
main()
{
    
    
	float profit, bonus;
	printf("输入利润(profit>0万):");/*另解if语句*/
		scanf_s("你今年的利润为%f万元", & profit);
		if (printf <= 10)
			bonus = profit * 0.1;
		else if (profit <= 20 && profit > 10)
			bonus = 10 * 0.1 + (profit - 10) * 0.075;
		else if (profit <= 40 && profit > 20)
			bonus = 10 * 0.1 + 10 * 0.075 + (profit - 20) * 0.05;
		else if (profit <= 60 && profit > 40)
			bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (profit - 40) * 0.03;
		else if (profit <= 100 && profit > 60)
			bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (profit - 60) * 0.015;
		else(profit > 100);
			bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + 20 * 0.015 + (profit - 100) * 0.01;
			printf("%f", bonus);
}

これは私のお気に入りのif選択ステートメントです。まあ、括弧内に書くのは本当に頭痛の種です。もしそうなら、これを行うのは簡潔ではないようです。

#include<stdio.h>
main()/*switch*/
{
    
    
	float profit, bonus;
	scanf_s("%f",&profit);
	switch((int)profit/10)
	{
    
    
	case 0:bonus = profit * 0.1;break;
	case 1:bonus = 10 * 0.1 + (profit - 10) * 0.075;break;
	case 2:case 3:bonus = 10 * 0.1 + 10 * 0.075 + (profit - 20) * 0.05;break;
	case 4:case 5:bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (profit - 40) * 0.03;break;
	case 6:case 7:case 8:case 9:bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (profit - 60) * 0.015;break;
	default:bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + 40 * 0.015 + (profit - 100) * 0.01;
	}
	printf("提成是:%f万元", bonus);
}

switchステートメントの使用は、想像したほどひどいものではありません.1つは、プロセスを最適化できること、もう1つは、最後の条件をデフォルトで置き換えることができることです。これにより、再度書き込む手間が省け、エラー率が低下します。
リフレクション:switchステートメントを使用するときは、括弧内の文字が整数定数であることを確認してください。そうでない場合は機能しません。同時に、大文字と小文字の使用を減らし、コードの量を簡素化するために、10の累乗で適切に除算できます。

さて、この質問は終わりました。コードブロックを挿入しようとしました。時間を節約できます。写真やスクリーンショットを撮る必要はありません。数学記号の挿入方法を知っている弟や妹がいる場合は、教えてください。そうします。より良い、ありがとう。

おすすめ

転載: blog.csdn.net/qq_52543548/article/details/109740236