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