ほら、私は独学で C++ を習得しました (完全ではないので、まだ先延ばしにしています ---)。それで、今私は大学に入学し、彼らは C を教えていて、4 つの整数を入力するプログラムを作らせて、それらの最大値と最小値を教えなければなりませんでした。簡単ですよね?
問題は、私はすでに関数と配列をよく理解しているということです。はい、これを配列でプログラムできます。問題ありません。しかし、これは最初のラボだったので、まだ「学習」していないので、それらのどれも使用できません。
これは私がそこに書いたものです(どういうわけか間違っているように感じます)。
#include<stdio.h>
int main(void)
{
int first, second, third, fourth;
printf("Enter four integers (separated by space): ");
scanf("%d %d %d %d", &first, &second, &third, &fourth);
if((first>second) && (first>third) && (first>fourth))
printf("\nFirst number is largest");
else if((second>first) && (second>third) && (second>fourth))
printf("\nSecond number is largest");
else if((third>second) && (third>first) && (third>fourth))
printf("\nThird number is largest");
else if((fourth>second) && (fourth>third) && (fourth>first))
printf("\nFourth number is largest");
if((first<second) && (first<third) && (first<fourth))
printf("\nFirst number is smallest");
else if((second<first) && (second<third) && (second<fourth))
printf("\nSecond number is smallest");
else if((third<second) && (third<first) && (third<fourth))
printf("\nThird number is smallest");
else if((fourth<second) && (fourth<third) && (fourth<first))
printf("\nFourth number is smallest");
printf("\n");
return 0;
}
ご覧のとおり、長すぎて退屈で複雑です。しかし、今のところ、クラスで取り上げたのはループと意思決定ステートメントだけです。これを行うよりエレガントな方法はありますか?より少ないif
sを使用するもの?これに何か問題があるわけではありませんが、改善される可能性があります。
PS これは正確には「宿題」などではありません。私はプログラムを作成しましたが、それをより良くするために何ができたかを知り、より良いプログラミング手法を学びたいと思っていました.