Определить номер первого из столбцов матрицы, содержащих хотя бы один нулевой элемент - C (СИ) (74649)

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

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

Задание:Дана целочисленная прямоугольная матрица. Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент. Программа должна содержать 2 функции: вывод массива, выполнение задания. Для выбора одной из двух функций организовать меню.

Помогите разобраться с проблемой в коде, скорее всего где-то в кейсах накосячил.

#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <string.h>
 
const int  n = 3;  
const int  m = 4;  
 
void printm(mm[n][m]);
int matrix(mm[n][m]);
 
void main()
    {int i,j; 
int matrix[n][m]={3,4,5,0,6,5,3,2,1,3,6,4};
do {
  printf ("\n1 - Печать матрицы, 2 - Поиск нулей\n");
  scanf("%d",&comanda);
 
 switch(comanda)
     case 1: printm(mm);break;
     case 2: printf(mm);break;
} }
while (comanda != 0);  }
 
void printm(int mm[n][m])
{int i,j; setlocal(LC_ALL,"Rus");
for (int i=0; i<n; i++)
for (int j =0; j<m; j++)
    printf("%d",mm[i][j]);
    printf("\n");
}
 
int matrix(int mm[n][m])
{int s=0; int i,j;
for (int i=0; i<n; i++)
for (int j =0; j<m; j++)
    if (mm[i][j]==0)
        printf("\n В столбце номер %d обнаружен ноль",j);
return 0;
system("pause");
}

Решение задачи: «Определить номер первого из столбцов матрицы, содержащих хотя бы один нулевой элемент»

textual
Листинг программы
#include <stdio.h>
 
 
#define n 3
#define m 4
 
void printm(int mm[n][m]);
int matrix(int mm[n][m]);
 
int main(){
        int comanda;        
        int mat[n][m]={   {1,2,3,4},
                           {4,5,6,5},
                           {7,0,9,7} };                        
do {
  printf ("\n1 - Печать матрицы, 2 - Поиск нулей\n");
  scanf("%d",&comanda);
 
 switch(comanda){
     case 1: printm(mat);
             break;
     case 2: matrix(mat);
             break;
  };
 }   while (comanda != 0);
 return 0;
}
 
void printm(int mm[n][m]){
  int i,j;
  
  for (i=0; i<n; i++)
    for (j =0; j<m; j++)
      printf("%d ",mm[i][j]);
    printf("\n");
}
 
int matrix(int mm[n][m]){
  int i,j;
  
  for (i=0; i<n; i++)
    for (j=0; j<m; j++)
      if (mm[i][j]==0)
          printf("\n В столбце номер %d обнаружен ноль",j);
  return 0;
}

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

  1. Программа начинается с объявления матрицы, представленной в виде двумерного массива, размером n на m, где n=3 и m=4.
  2. Затем определяются две функции: printm и matrix. Функция printm используется для печати матрицы, а функция matrix для поиска нулей в матрице.
  3. В функции main(), после объявления переменных, используется цикл do-while для выполнения команд, вводимых пользователем.
  4. При вводе 1 выполняется функция printm(), которая перебирает все элементы матрицы и выводит их на экран через пробел.
  5. При вводе 2 выполняется функция matrix(), которая также перебирает все элементы матрицы, но если встречается ноль, то выводит на экран номер столбца, в котором этот ноль был найден.
  6. В конце программы используется return 0 для завершения работы программы.
  7. Ноль в матрице встречается в столбце номер 3.

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


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

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

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