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

Macierz w macierzy

Object Storage Arubacloud
0 głosów
551 wizyt
pytanie zadane 25 listopada 2019 w C i C++ przez Hubertius Bywalec (2,970 p.)

Czołem :D

Mam problem z tym oto zadaniem:

"

Napisz program, który wczyta od użytkownika dwie macierze A (o wymiarze 10×10) i B (o wymiarze 2×2). Program ma znaleźć i wypisać ile razy macierz B pojawiła się w macierzy A. W kolejnych liniach mają zostać wypisane indeksy komórek macierzy A, które pokryły się z macierzą B (indeks komórki, który odpowiada lewemu górnemu rogowi macierzy B, w formacie x y). W przypadku wprowadzenia przez użytkownika błędnych danych program powinien wyświetlić komunikat incorrect input i zakończyć działanie z kodem błędu 1.

Przykładowe wejście:

podaj liczby: ⏎
-7 2 7 8 0 -3 2 -10 -8 3 ⏎
3 5 2 -2 8 -1 -1 0 -4 7 ⏎
1 -7 4 -2 3 7 -8 2 3 1 ⏎
10 -6 -10 5 -8 7 -5 4 -6 0 ⏎
0 10 1 10 4 -4 3 4 7 4 ⏎
1 3 -9 0 6 9 -6 -10 5 -4 ⏎
4 3 5 -7 -8 7 6 -3 -2 -5 ⏎
-10 -10 -10 10 10 3 9 -2 10 9 ⏎
-6 0 -5 8 5 -4 6 -6 9 10 ⏎
9 -7 3 -8 0 -6 -6 9 10 -10 ⏎
podaj liczby: ⏎
5 -4 ⏎
0 -6 ⏎

Przykładowe wyjście:

1⏎
4 8⏎

Rozpisałem kod:

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) 
{
	int A[10][10];
	int B[2][2];
	printf("Podaj liczby:\n");
	int i,j;
	int liczba;
	for(i=0;i<=9;i++)
	{
		for(j=0;j<=9;j++)
		{
			if(scanf("%d",&liczba)==1)
			{
				A[i][j]=liczba;
			}
			else
			{
				printf("incorrect input");
				return 1;
			}
		}
	}
    printf("Podaj liczby:\n");
	for(i=0;i<=1;i++)
	{
		for(j=0;j<=1;j++)
		{
			if(scanf("%d",&liczba)==1)
			{
				B[i][j]=liczba;
			}
			else
			{
				printf("incorrect input");
				return 1;
			}
		}
	}
	int s=0;
	for(i=0;i<=9;i++)
	{
		for(j=0;j<=9;j++)
		{
			if( (A[i][j]==B[0][0] ) && (A[i][j+1]==B[0][1]) && (A[i+1][j]==B[1][0]) && (A[i+1][j+1]==B[1][1]) )
			{
				s++;
			}
		}
	}
	printf("%d\n",s);
	for(i=0;i<=9;i++)
	{
		for(j=0;j<=9;j++)
		{
			if( (A[i][j]==B[0][0] ) && (A[i][j+1]==B[0][1]) && (A[i+1][j]==B[1][0]) && (A[i+1][j+1]==B[1][1]) )
			{
	
				printf("%d ",j);
				printf("%d",i);
				printf("\n");
			}
		}
	}
	
	return 0;
}

I posłałem do na Dante do testów maszynowych. I dla takiego przykładu :

-9 -9 -9 -9 -9 -9 -9 -9 -9 -9 ⏎
-9 -9 -9 -9 -9 -9 -9 -9 -9 -9 ⏎
-9 -9 -9 -9 -9 -9 -9 -9 -9 -9 ⏎
-9 -9 -9 -9 -9 -9 -9 -9 -9 -9 ⏎
-9 -9 -9 -9 -9 -9 -9 -9 -9 -9 ⏎
-9 -9 -9 -9 -9 -9 -9 -9 -9 -9 ⏎
-9 -9 -9 -9 -9 -9 -9 -9 -9 -9 ⏎
-9 -9 -9 -9 -9 -9 -9 -9 -9 -9 ⏎
-9 -9 -9 -9 -9 -9 -9 -9 -9 -9 ⏎
-9 -9 -9 -9 -9 -9 -9 -9 -9 -9 ⏎
Podaj liczby:⏎
-9 -9 ⏎
-9 -9 ⏎
⏎

Wyskoczył mi błąd z komunikatem: "Liczba linii wyświetlanych przez program jest niewłaściwa; powinno być 82 a jest 90". Co zrobiłem źle? I jak mogę to naprawić?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 487 wizyt
pytanie zadane 23 lutego 2020 w C i C++ przez Michał2019 Nowicjusz (170 p.)
0 głosów
2 odpowiedzi 5,478 wizyt
pytanie zadane 19 marca 2018 w C i C++ przez Groshq Użytkownik (590 p.)
0 głosów
5 odpowiedzi 760 wizyt
pytanie zadane 6 marca 2018 w C i C++ przez darek_s91 Użytkownik (580 p.)

92,552 zapytań

141,399 odpowiedzi

319,534 komentarzy

61,938 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!

...