トピック: 3 つの整数 a、b、c を入力し、昇順に出力する
ステップ 1: プログラムの目標を定義する
3 つの整数をランダムに入力し、昇順に出力する C プログラムを作成します。
ステップ 2: プログラム設計
プログラム全体は 3 つのモジュールで構成されており、1 つ目は scanf 入力関数モジュール、2 つ目はループ for モジュール、3 つ目は if 判定モジュールです。scanf 入力モジュールは 3 つの整数をランダムに入力するために使用され、for モジュールは入力整数をループしてコードを簡略化するために使用され、if モジュールは 3 つの整数のサイズを決定してデータを並べ替えるために使用されます。
コードを書きます:
#include<stdio.h>
int main(){
int a,b,c,d; //4 つの変数を定義し、そのうちの 1 つは交換に使用されます
printf("最初の数字を入力してください:\n");
scanf("%d",&a); //scanf を使用して確率変数を入力します
printf("2 番目の数字を入力してください:\n");
scanf("%d",&b);
printf("3 番目の数字を入力してください:\n");
scanf("%d",&c);
// if ステートメントを使用して整数のサイズを決定し、条件を満たさない場合はサードパーティ変数を使用して位置を変更します
if(a>b){
d=a;
a=b;
b=d;
}
if(a>c){
d=a;
a=c;
c=d;
}
if(b>c){
d=b;
b=c;
c=d;
}
printf("これら 3 つの数値の小さいものから大きいものへの順序は次のとおりです: %d<%d<%d\n", a, b, c); // 3 つの数値の並べ替え結果を入力します
}
効果:
コードの最適化
コードの修正
1. ループを使用してランダムな整数を追加し、後続のコードの拡張を容易にします。
2. for ループ + scanf 関数を使用してコードの可読性を向上させ、コードがより簡潔で明確になります。
3. コードの量を簡略化するために、新しい変数 e 配列を追加します。
#include<stdio.h>
int main(){
int a、b、c、d、i、e[3];
for(i=0;i<3;i++){ //コードを再利用するために for ループを使用して 3 つの変数に値を代入します
printf("%d 番目の整数を入力してください:\n",i+1);
scanf("%d",&e[i]); //配列を使用してデータを保存します
}
//ランダムに入力されたデータを 3 つの変数 a、b、c に代入します
a=e[0];
b=e[1];
c=e[2];
// if ステートメントを使用して整数のサイズを決定し、条件を満たさない場合はサードパーティ変数を使用して位置を変更します
if(a>b){
d=a;
a=b;
b=d;
}
if(a>c){
d=a;
a=c;
c=d;
}
if(b>c){
d=b;
b=c;
c=d;
}
printf("これら 3 つの数値の小さいものから大きいものへの順序は次のとおりです: %d<%d<%d\n", a, b, c); // 3 つの数値の並べ替え結果を入力します
}
効果:
要約する
この C 言語の場合は実装が簡単ですが、コードを記述するときは可能な限りコードを単純化する必要があり、このコードはその後のメンテナンスに便利です。異なるプログラマーがプログラムを設計する場合、考慮される問題はまったく異なります。たとえば、モジュール用に最適化されたコードでは、コードをより簡潔にするために 3 つのパラメーターを指定して scanf 関数を直接使用すれば十分だと考える人もいるでしょう。このアイデアは良いと言わざるを得ません。コードは単純化されますが、問題があります。後続の比較で使用する整数の数が変わったらどうなるでしょうか。1 つまたは 2 つの整数を追加する場合は簡単に解決できますが、12 を超える整数を追加すると、面倒になります。また、プログラムが独立してソートできるように整数の加算をカスタマイズしたらどうなるでしょうか? これには、より高度なプログラムの考え方が含まれており、興味のある家族がそれについて考えることができます。それでは、次の章でお会いしましょう。
PS: プログラムを作成するときは、必ずタブを使用してコードをインデントする必要があります。そうしないと、既存のコンパイル システムが間違いを犯すことになります。必ず覚えておいてください。