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ć?