Копирование строк при выводе массива
#include<stdafx.h>
#include <stdio.h>
#include <conio.h>
#include<Windows.h>
#pragma warning(disable : 4996)
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char sh[] = "------------------------------------------------------------------------------------------";
int i=0, k=0, schetchik = 0, A[3][3];
printf("Введите элементы масива А: ");
for (int i = 0; i <3; i++) {
for (int k = 0; k < 3; k++) {
scanf("%d", &A[i][k]);
}
}
for (int i = 0; i < 3; i++) {
for (int k = 0; k < 3; k++) {
printf("%d\t", A[i][k]);
}
printf("\n");
}
printf("\n%s\n", sh);
int schetchik1 = 0, schetchik2 = 0, schetchik3=0;
for (k = 0; k < 3; k++)
{
if (A[0][k] == 0)
{
schetchik1++;
}
} if (schetchik1 == 3)
{
for (i = 1; i < 3; i++)
{
for (k = 0; k < 3; k++)
{
printf("%d\t", A[i][k]);
}printf("\n");
}
}
for (k = 0; k < 3; k++)
{
if (A[1][k] == 0)
{
schetchik2++;
}
} if (schetchik2 == 3)
{
for (k = 0; k < 3; k++)
{
printf("%d\t", A[0][k]);
}
}printf("\n");
for (k = 0; k < 3; k++)
{
printf("%d\t", A[2][k]);
}printf("\n");
for (k = 0; k < 3; k++)
{
if (A[2][k] == 0)
{
schetchik3++;
}
} if (schetchik3 == 3)
{
for (i = 0; i < 2; i++)
{
for (k = 0; k < 3; k++)
{
printf("%d\t", A[i][k]);
}printf("\n");
}
}
system("Pause");
}
Суть программы заключается в том, чтобы если какая-то строка массива содержала три нуля, то ее не учитывало и выводило бы массив без нее, центральная строка работает, но если первая строка содержит нули, то дублирует последнюю, а если последняя, то перед выводом того, что нас интересует, выводит строчку нулей.
[![1Я СТРОКА][1]][1]
[![2Я строка][2]][2]
[![3Я строка][2]][2]
Вопрос: как исправить это копирование лишних строк?