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

Macierz w macierzy

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
666 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 510 wizyt
pytanie zadane 23 lutego 2020 w C i C++ przez Michał2019 Nowicjusz (170 p.)
0 głosów
2 odpowiedzi 5,898 wizyt
pytanie zadane 19 marca 2018 w C i C++ przez Groshq Użytkownik (590 p.)
0 głosów
5 odpowiedzi 963 wizyt
pytanie zadane 6 marca 2018 w C i C++ przez darek_s91 Użytkownik (580 p.)

93,189 zapytań

142,204 odpowiedzi

322,029 komentarzy

62,517 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2817p. - dia-Chann
  2. 2769p. - Łukasz Piwowar
  3. 2759p. - Łukasz Eckert
  4. 2738p. - CC PL
  5. 2704p. - Tomasz Bielak
  6. 2678p. - Łukasz Siedlecki
  7. 2666p. - rucin93
  8. 2485p. - Marcin Putra
  9. 2418p. - Michal Drewniak
  10. 2367p. - Adrian Wieprzkowicz
  11. 2317p. - Mikbac
  12. 2239p. - Michał Telesz
  13. 2156p. - Anonim 3619784
  14. 1733p. - rafalszastok
  15. 1628p. - Dominik Łempicki (kapitan)
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...