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

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

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

#include<stdio.h>
#include<stdlib.h>
#define N 2
#define M 2
void in_mas(int *l,int n){
    int i;
    for (i=0;i<n;i++)
        scanf("%d",l++);
    }
void out_mas(int *l,int n,int x)
{ 
  int i,j;
  for(i=0;i<n;i++)
  {
    for(j=0;j<x;j++)
      printf("%d ",*(l+i*x+j));
    printf("\n");
  }
}
   
void func (int *l, int n, int m){
    int i,j;
    int sum=0;
    for (i=0;i<n;i++)
    {
        sum=0;
        for (j=0; j<m; j++)
            sum+=*(l+i*n+j);
        if (sum%2==0)
            printf("%d\n",i);
    }   
}
 
int main(void)
{
  int a[N][M];
  printf("vvedite massiv a\n");
  in_mas(*a,N*M);
  out_mas(*a,N,M);  
  func(*a,N,M);
  //getchar(); 
  system("pause");
  return 0;   
}
Скажите пожалуйста, как мне квадратную матрицу вывести через один цикл , а не через 2. Если знаете исправьте программу пожалуйста. Спасибо

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

textual
Листинг программы
void out_mas(int *l,int n,int x)
{ 
  int i;
  for(i=0;i<n*x;i++)
  {
  if(!i%n)
    printf("\n");
      printf("%d ",*(l+i);
}
}

Объяснение кода листинга программы

В данном коде функция out_mas() используется для вывода на экран квадратной матрицы, используя один цикл.

  1. Переменная i инициализируется значением 0.
  2. Используется цикл for для перебора всех элементов матрицы от 0 до n*x.
  3. Условие !(i%n) проверяет, кратен ли текущий индекс переменной i размерности матрицы n.
  4. Если условие выполняется, то выводится символ новой строки \n.
  5. В каждой итерации внутри цикла выводится значение элемента матрицы, который находится по индексу i с помощью оператора printf.
  6. Значение i увеличивается на 1 после каждой итерации цикла. Таким образом, данный код выводит на экран квадратную матрицу, используя только один цикл.

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


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

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

6   голосов , оценка 4.167 из 5
Похожие ответы