penyelesaian pakai bahasa c untuk menghitung jumlah angka dalam suatu array adalah sebagai berikut
#include<stdio.h>
int main()
{
int T, N, a;
int count[100000];
scanf("%i", &T);
for(int i = 0; i < T; i++)
{
scanf("%i", &N);
for(int j = 0; j < N; j++)
{
count[j] = 0;
}
int numberIndex = 0;
int max = 0, min = 999999;
for(int j = 0; j < N; j++)
{
scanf("%i", &a);
count[a]++;
if(a > max) max = a;
if(a < min) min = a;
}
for(int j = min; j <= max; j++)
{
if(count[j] > 0)
{
printf("%i : %i\n", j, count[j]);
}
}
}
return 0;
}
Pembahasan
Untuk menyelesaikan problem tersebut kita memanfaatkan variabel a sebagai index dari array count[]. Yang dicari pada soal ini adalah jumlah dari tiap-tiap angka yang muncul pada array a. Sehingga kita tidak perlu menyimpan semua variabel a pada array. Kita cukup tambahkan nilai 1 pada array count index a, setiap kali membaca array a dari input.
Maka dari itu nilai dari array count[a] akan ditambah satu setiap a ditemukan. Sebelumnya kita harus mendeklarasikan nilai array count adalah 0 untuk semua index sebelum memulai kalkulasi.
for(int j = 0; j < N; j++)
{
count[j] = 0;
}
for(int j = 0; j < N; j++)
{
scanf("%i", &a);
count[a]++;
}
Kemudian untuk mengetahui angka berapa saja yang muncul dan berapa jumlah kemunculannya, kita cek array count, jika isinya lebih dari 0, maka angka index tersebut muncul, dan kemunculannya adalah merupakan isi dari array count di index tersebut.
Misalnya input array a adalah 1 2 1 4
maka array count akan berisi
index isi
1 2
2 1
3 0
4 1
5 0
6 0
.. ..
100000 0
Array count kita set memiliki 100000 ruang karena pada soal ada constraint bahwa jumlah N adalah 1 - 100000 dimana N adalah jumlah bilangan yang mungkin ada pada array a.
Kemudian untuk mengefisienkan kecepatan program mengerjakan program, kita tidak perlu mengecek ke 100000 array count tersebut. Kita bisa mengeceknya dari index terkecil yang muncul hingga index terbesar yang muncul pada array a.
Caranya adalah menghitung nilai min dan max pada input array a di soal.
int max = 0, min = 999999;
for(int j = 0; j < N; j++)
{
scanf("%i", &a);
count[a]++;
if(a > max) max = a;
if(a < min) min = a;
}
Kemudian gunakan perulangan yang iterasinya dimulai dari min hingga max untuk mencetak array count yang isinya lebih dari 0 (ada kemunculan bilangan pada index tersebut)
for(int j = min; j <= max; j++)
{
if(count[j] > 0)
{
printf("%i : %i\n", j, count[j]);
}
}
Pengertian Perulangan dalam Program
Perulangan merupakan salah satu komponen yang sangat penting dalam pemrograman. Perulangan memungkinkan suatu program untuk melakukan proses berulang-ulang sesuai dengan kehendak programmer. Dalam bahasa C, terdapat fungsi untuk melakukan perulangan, yaitu for, while, dan do…while.
For
For merupakan salah satu bentuk perulangan, yang memiliki ciri jumlah perulangan yang telah tetap. Syntax dari fungsi for adalah :
Verified answer
penyelesaian pakai bahasa c untuk menghitung jumlah angka dalam suatu array adalah sebagai berikut
#include<stdio.h>
int main()
{
int T, N, a;
int count[100000];
scanf("%i", &T);
for(int i = 0; i < T; i++)
{
scanf("%i", &N);
for(int j = 0; j < N; j++)
{
count[j] = 0;
}
int numberIndex = 0;
int max = 0, min = 999999;
for(int j = 0; j < N; j++)
{
scanf("%i", &a);
count[a]++;
if(a > max) max = a;
if(a < min) min = a;
}
for(int j = min; j <= max; j++)
{
if(count[j] > 0)
{
printf("%i : %i\n", j, count[j]);
}
}
}
return 0;
}
Pembahasan
Untuk menyelesaikan problem tersebut kita memanfaatkan variabel a sebagai index dari array count[]. Yang dicari pada soal ini adalah jumlah dari tiap-tiap angka yang muncul pada array a. Sehingga kita tidak perlu menyimpan semua variabel a pada array. Kita cukup tambahkan nilai 1 pada array count index a, setiap kali membaca array a dari input.
Maka dari itu nilai dari array count[a] akan ditambah satu setiap a ditemukan. Sebelumnya kita harus mendeklarasikan nilai array count adalah 0 untuk semua index sebelum memulai kalkulasi.
for(int j = 0; j < N; j++)
{
count[j] = 0;
}
for(int j = 0; j < N; j++)
{
scanf("%i", &a);
count[a]++;
}
Kemudian untuk mengetahui angka berapa saja yang muncul dan berapa jumlah kemunculannya, kita cek array count, jika isinya lebih dari 0, maka angka index tersebut muncul, dan kemunculannya adalah merupakan isi dari array count di index tersebut.
Misalnya input array a adalah 1 2 1 4
maka array count akan berisi
index isi
1 2
2 1
3 0
4 1
5 0
6 0
.. ..
100000 0
Array count kita set memiliki 100000 ruang karena pada soal ada constraint bahwa jumlah N adalah 1 - 100000 dimana N adalah jumlah bilangan yang mungkin ada pada array a.
Kemudian untuk mengefisienkan kecepatan program mengerjakan program, kita tidak perlu mengecek ke 100000 array count tersebut. Kita bisa mengeceknya dari index terkecil yang muncul hingga index terbesar yang muncul pada array a.
Caranya adalah menghitung nilai min dan max pada input array a di soal.
int max = 0, min = 999999;
for(int j = 0; j < N; j++)
{
scanf("%i", &a);
count[a]++;
if(a > max) max = a;
if(a < min) min = a;
}
Kemudian gunakan perulangan yang iterasinya dimulai dari min hingga max untuk mencetak array count yang isinya lebih dari 0 (ada kemunculan bilangan pada index tersebut)
for(int j = min; j <= max; j++)
{
if(count[j] > 0)
{
printf("%i : %i\n", j, count[j]);
}
}
Pengertian Perulangan dalam Program
Perulangan merupakan salah satu komponen yang sangat penting dalam pemrograman. Perulangan memungkinkan suatu program untuk melakukan proses berulang-ulang sesuai dengan kehendak programmer. Dalam bahasa C, terdapat fungsi untuk melakukan perulangan, yaitu for, while, dan do…while.
For
For merupakan salah satu bentuk perulangan, yang memiliki ciri jumlah perulangan yang telah tetap. Syntax dari fungsi for adalah :
for(inisialisasi ; kondisi ; increment/decrement)
{
Statement… -> Statement2 yang akan diulang
}
Pelajari lebih lanjut
Penyelesaian problem repetition di soal dengan menggunakan bahasa C brainly.co.id/tugas/18317513
Detil Jawaban
Kelas : 10
Bab : Mengenal Pemrograman Komputer
Kata Kunci : penyelesaian pakai bahasa c untuk menghitung jumlah angka dalam suatu array