Если в строке матрицы есть хотя бы одна единица, то заменить эту строку нулями - C (СИ)
Формулировка задачи:
Задана матрица В(4,4). Если в строке есть хотя бы одна единица, то заменить эту строку нулями.
Помогите пожалуйста переделать с указателями.
# include <stdio.h>
# include <conio.h>
int main(int argc, char* argv[])
{int m[4][4],i,j,g;
printf("Vvedite massiv\n");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&m[i][j]);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if (m[i][j]==1) {
for(g=0;g<4;g++)
m[i][g]=0;
}
for(i=0;i<4;i++)
{printf(" \n");
for(g=0;g<4;g++)
printf("%d",m[i][g]);}
getch();
return 0;
}Решение задачи: «Если в строке матрицы есть хотя бы одна единица, то заменить эту строку нулями»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {
int m[4][4], i, j;
int* s = (int*) m, * t;
printf("Vvedite massiv\n");
for (i = 16; i--;) {
scanf("%d", s++);
}
s = (int*) m;
for (i = 0; i < 16; ++i) {
if (*s++ == 1) {
t = (int*) m + (i & -4);
for (j = 4; j--;) {
*t++ = 0;
}
}
}
s = (int*) m;
for (i = 16; i; --i) {
if (i % 4 == 0) {
printf("\n");
}
printf("%d ", *s++);
}
system("pause");
return 0;
}