• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Matura 2017 czerwiec

Object Storage Arubacloud
0 głosów
2,154 wizyt
pytanie zadane 11 kwietnia 2020 w C i C++ przez veryape Użytkownik (580 p.)

Witam, mam straszny problem z podpunktem 4.2 z czerwcowej matury z 2017 roku. Próbowałem tak na chama wyciągać wszystkie cyfry po kolei z liczb i je porównywać, ale wynik jest błędny, męczę się z tym zadaniem już od kilku dni i nie mam pojęcia jak je ugryźć.
https://arkusze.pl/matura-informatyka-2017-czerwiec-poziom-rozszerzony/
Tutaj link do arkusza oraz plików, z góry dziękuję za odpowiedź.

1 odpowiedź

0 głosów
odpowiedź 11 kwietnia 2020 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Nie wiem, czy to najlepsze rozwiązanie, ale możesz spróbować zrobić coś takiego.

Utwórz po jednej 10 elementowej tablicy bool dla każdej z tych liczb. Przeiteruj po ich cyfrach, jeżeli dana cyfra wystąpi, to ustaw odpowiedni element tablicy na true (np. dla cyfry 7 będzie to tab[7]). Po całym takim procesie będziesz miał informacje na temat wystąpień cyfr w danej liczbie.

Na końcu wystarczy jeszcze tylko porównać dwie tablice. wink

komentarz 11 kwietnia 2020 przez veryape Użytkownik (580 p.)

Czyli jak rozumiem zrobić coś na zasadzie

Liczba = tablica[i][0]

Int temp;
While(liczba){
 temp=liczba%10;
 liczba /=10;
 Tabbool[temp]=true; 
}

I tak samo dla tablica[i][1] i poròwnać 2 bool tablice czy mają identycznie te same elementy? 

Wybacz, ze kod taki uproszczony ale aktualnie korzystam z urządzenia mobilnego, poniewaz jestem poza domem.

komentarz 11 kwietnia 2020 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Tak, mniej więcej coś takiego (nie powinno jednak być odwrotnie? tablica[1][i]).

Ja napisałem taki kod w C (nie byłem pewien w czym ty piszesz, ale to raczej nie ma wielkiego znaczenia).

#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#define BASE 10

void get_number_digits(unsigned int number, bool *digits) {
	while (number > 0) {
		unsigned int digit = number % BASE;
		digits[digit] = true;
		number /= BASE;
	}
}

bool use_the_same_digits(unsigned int number1, unsigned int number2) {
	bool digits1[BASE] = {0};
	get_number_digits(number1, digits1);
	
	bool digits2[BASE] = {0};
	get_number_digits(number2, digits2);

	// sizeof(digits1) == sizeof(digits2)
	return memcmp(digits1, digits2, sizeof(digits1)) == 0;
}

int main(void) {
	unsigned int number1;
	printf("Podaj pierwszą liczbę: ");
	scanf("%u", &number1);

	unsigned int number2;
	printf("Podaj drugą liczbę: ");
	scanf("%u", &number2);

	printf(
		"Liczby %d i %d %sużywają wyłącznie tych samych cyfr\n",
		number1,
		number2,
		use_the_same_digits(number1, number2) ? "" : "nie "
	);

	return 0;
}

 

Podobne pytania

0 głosów
1 odpowiedź 717 wizyt
pytanie zadane 11 maja 2021 w C i C++ przez nzepik324 Początkujący (260 p.)
0 głosów
1 odpowiedź 1,327 wizyt
0 głosów
1 odpowiedź 1,043 wizyt
pytanie zadane 10 maja 2021 w C i C++ przez nzepik324 Początkujący (260 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...