Если в строке матрицы есть хотя бы одна единица, то заменить эту строку нулями - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Задана матрица В(4,4). Если в строке есть хотя бы одна единица, то заменить эту строку нулями. Помогите пожалуйста переделать с указателями.
Листинг программы
  1. # include <stdio.h>
  2. # include <conio.h>
  3. int main(int argc, char* argv[])
  4. {int m[4][4],i,j,g;
  5. printf("Vvedite massiv\n");
  6. for(i=0;i<4;i++)
  7. for(j=0;j<4;j++)
  8. scanf("%d",&m[i][j]);
  9. for(i=0;i<4;i++)
  10. for(j=0;j<4;j++)
  11. if (m[i][j]==1) {
  12. for(g=0;g<4;g++)
  13. m[i][g]=0;
  14. }
  15. for(i=0;i<4;i++)
  16. {printf(" \n");
  17. for(g=0;g<4;g++)
  18. printf("%d",m[i][g]);}
  19. getch();
  20. return 0;
  21. }

Решение задачи: «Если в строке матрицы есть хотя бы одна единица, то заменить эту строку нулями»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char* argv[]) {
  5.     int m[4][4], i, j;
  6.     int* s = (int*) m, * t;
  7.  
  8.     printf("Vvedite massiv\n");
  9.     for (i = 16; i--;) {
  10.         scanf("%d", s++);
  11.     }
  12.  
  13.     s = (int*) m;
  14.     for (i = 0; i < 16; ++i) {
  15.         if (*s++ == 1) {
  16.             t = (int*) m + (i & -4);
  17.             for (j = 4; j--;) {
  18.                 *t++ = 0;
  19.             }
  20.         }
  21.     }
  22.  
  23.     s = (int*) m;
  24.     for (i = 16; i; --i) {
  25.         if (i % 4 == 0) {
  26.             printf("\n");
  27.         }
  28.         printf("%d ", *s++);
  29.     }
  30.  
  31.     system("pause");
  32.     return 0;
  33. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы