[C] Obliczanie liczby powtórzeń wprowadzonych liczb

Awatar użytkownika
Assassin-Girl
Użytkownik
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

Post autor: Assassin-Girl »

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.
Awatar użytkownika
Kacperdev
Użytkownik
Użytkownik
Posty: 3260
Rejestracja: 23 mar 2010, o 19:19
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 17 razy
Pomógł: 686 razy

[C] Obliczanie liczby powtórzeń wprowadzonych liczb

Post autor: Kacperdev »

Mogłabyś sprecyzować polecenie? Najlepiej na przykładzie.
kalwi
Użytkownik
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

Post autor: kalwi »

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.
Awatar użytkownika
Assassin-Girl
Użytkownik
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

Post autor: Assassin-Girl »

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:

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);
}
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ć.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C] Obliczanie liczby powtórzeń wprowadzonych liczb

Post autor: Afish »

Posortuj liczby i przeiteruj po tablicy zliczając długość ciągów tych samych liczb.
ODPOWIEDZ