Определить номер первого из столбцов матрицы, содержащих хотя бы один нулевой элемент - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д