// Contoh Bab 10: program yang benar untuk contoh biasa, salah untuk // kasus tepi. // // Seharusnya: cetak selisih terbesar antara dua elemen array. // // Compile: g++ -std=c++17 -O2 -o tepi exercises/10/02-kasus-tepi.cpp // Jalankan: ./tepi // Coba: "5 / 3 9 2 9 1" (benar), lalu "1 / 7", lalu "3 / -9 -2 -5" #include using namespace std; const int MAKS = 100005; int a[MAKS]; int main() { int n; cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; int besar = 0; // salah: seharusnya a[0] int kecil = 0; // salah: seharusnya a[0] for (int i = 0; i < n; i++) { if (a[i] > besar) besar = a[i]; if (a[i] < kecil) kecil = a[i]; } cout << besar - kecil << "\n"; // Coba ini: jalankan dengan n = 1, lalu dengan data semuanya negatif, // lalu perbaiki nilai awal besar dan kecil. return 0; }