Cześć i czołem.
Mam do napisania taki program(ik).
"Napisz program wczytujący cztery liczby całkowite i sprawdzający, ile jest wśród nich powtórzeń - dwójek, trójek i czwórek."
Chodzi o to, że nie do końca wiem, w jaki sposób obliczyć te powtórzenia. Myślałam o wprowadzeniu kolejno liczb poprzez \(\displaystyle{ scanf}\), ale porównywanie każdej liczby z każdą przy użyciu \(\displaystyle{ if}\) "na piechotę" to byłby jakiś koszmar.
Pewnie istnieje dużo prostszy sposób, więc, jeśli ktoś mógłby mnie nakierować, jak to ugryźć, to będę wdzięczna.
[C] Obliczanie liczby powtórzeń wprowadzonych liczb
- Assassin-Girl
- Użytkownik
- Posty: 76
- Rejestracja: 22 lut 2013, o 18:32
- Płeć: Kobieta
- Lokalizacja: Maczu-Pikczu
- Podziękował: 33 razy
-
- Użytkownik
- Posty: 1931
- Rejestracja: 29 maja 2009, o 11:58
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 145 razy
- Pomógł: 320 razy
[C] Obliczanie liczby powtórzeń wprowadzonych liczb
Ja bym wnioskował, że jeśli na wejściu podasz np. 1,1,1,2 to będziesz miał jedną trójkę. Jeśli tak to by można to było za pomocą tablicy + fora zrobić, ale nie wiem czy się opłaca dla 4 elementów.
- Assassin-Girl
- Użytkownik
- Posty: 76
- Rejestracja: 22 lut 2013, o 18:32
- Płeć: Kobieta
- Lokalizacja: Maczu-Pikczu
- Podziękował: 33 razy
[C] Obliczanie liczby powtórzeń wprowadzonych liczb
Chodzi o to, żeby po wprowadzeniu np. 7 8 7 9 wyświetlił się komunikat, że wśród tych liczb jest jedna para (7). Po wprowadzeniu np. 4 5 4 4 ma się wyświetlić, że jest jedna trójka (4) itd.
Oto mój kod:
W sumie myślałam, że wyjdzie więcej tych warunków, co nie zmienia faktu, że fajnie by było ten kod jakoś inaczej napisać.
Oto mój kod:
Kod: Zaznacz cały
#include <stdio.h>
int main()
{
int liczba_pierwsza, liczba_druga, liczba_trzecia, liczba_czwarta, czworki, trojki, dwojki;
printf("Program do obliczania liczby powtorzen czterech liczb.
");
printf("Podaj cztery liczby calkowite: ");
scanf("%d %d %d %d",&liczba_pierwsza,&liczba_druga,&liczba_trzecia,&liczba_czwarta);
if (liczba_pierwsza==liczba_druga && liczba_trzecia==liczba_czwarta && liczba_pierwsza==liczba_czwarta && liczba_druga==liczba_czwarta)
{
czworki=1;
trojki=0;
dwojki=0;
}
else if(liczba_pierwsza==liczba_druga && liczba_czwarta==liczba_pierwsza && liczba_druga==liczba_czwarta)
{
czworki=0;
trojki=1;
dwojki=0;
}
else if(liczba_pierwsza==liczba_druga && liczba_druga==liczba_trzecia && liczba_pierwsza==liczba_trzecia)
{
czworki=0;
trojki=1;
dwojki=0;
}
else if(liczba_pierwsza==liczba_trzecia && liczba_trzecia==liczba_czwarta && liczba_pierwsza==liczba_czwarta)
{
czworki=0;
trojki=1;
dwojki=0;
}
else if(liczba_druga==liczba_trzecia && liczba_trzecia==liczba_czwarta && liczba_druga==liczba_czwarta)
{
czworki=0;
trojki=1;
dwojki=0;
}
else if(liczba_pierwsza==liczba_druga && liczba_trzecia==liczba_czwarta && liczba_pierwsza!=liczba_czwarta)
{
czworki=0;
trojki=0;
dwojki=2;
}
else if(liczba_pierwsza==liczba_trzecia && liczba_druga==liczba_czwarta && liczba_pierwsza!=liczba_czwarta)
{
czworki=0;
trojki=0;
dwojki=2;
}
else if(liczba_pierwsza==liczba_czwarta && liczba_druga==liczba_trzecia && liczba_pierwsza!=liczba_trzecia)
{
czworki=0;
trojki=0;
dwojki=2;
}
else if(liczba_pierwsza==liczba_druga && liczba_trzecia!=liczba_czwarta!=liczba_pierwsza)
{
czworki=0;
trojki=0;
dwojki=1;
}
else if(liczba_pierwsza==liczba_trzecia && liczba_druga!=liczba_czwarta!=liczba_pierwsza)
{
czworki=0;
trojki=0;
dwojki=1;
}
else if(liczba_pierwsza==liczba_czwarta && liczba_druga!=liczba_trzecia!=liczba_czwarta)
{
czworki=0;
trojki=0;
dwojki=1;
}
else if(liczba_druga==liczba_trzecia && liczba_pierwsza!=liczba_czwarta!=liczba_trzecia)
{
czworki=0;
trojki=0;
dwojki=1;
}
else if(liczba_druga==liczba_czwarta && liczba_pierwsza!=liczba_trzecia!=liczba_druga)
{
czworki=0;
trojki=0;
dwojki=1;
}
else if(liczba_trzecia==liczba_czwarta && liczba_pierwsza!=liczba_druga!=liczba_trzecia)
{
czworki=0;
trojki=0;
dwojki=1;
}
else
{
czworki=0;
trojki=0;
dwojki=0;
}
printf("
Liczba czworek: %d
",czworki);
printf("Liczba trojek: %d
",trojki);
printf("Liczba dwojek: %d
",dwojki);
}