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

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

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

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

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

Листинг программы
  1. #include "stdafx.h"
  2. #include <stdio.h>
  3. #include <iostream>
  4. #include <conio.h>
  5. #include <string.h>
  6. const int n = 3;
  7. const int m = 4;
  8. void printm(mm[n][m]);
  9. int matrix(mm[n][m]);
  10. void main()
  11. {int i,j;
  12. int matrix[n][m]={3,4,5,0,6,5,3,2,1,3,6,4};
  13. do {
  14. printf ("\n1 - Печать матрицы, 2 - Поиск нулей\n");
  15. scanf("%d",&comanda);
  16. switch(comanda)
  17. case 1: printm(mm);break;
  18. case 2: printf(mm);break;
  19. } }
  20. while (comanda != 0); }
  21. void printm(int mm[n][m])
  22. {int i,j; setlocal(LC_ALL,"Rus");
  23. for (int i=0; i<n; i++)
  24. for (int j =0; j<m; j++)
  25. printf("%d",mm[i][j]);
  26. printf("\n");
  27. }
  28. int matrix(int mm[n][m])
  29. {int s=0; int i,j;
  30. for (int i=0; i<n; i++)
  31. for (int j =0; j<m; j++)
  32. if (mm[i][j]==0)
  33. printf("\n В столбце номер %d обнаружен ноль",j);
  34. return 0;
  35. system("pause");
  36. }

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

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3.  
  4. #define n 3
  5. #define m 4
  6.  
  7. void printm(int mm[n][m]);
  8. int matrix(int mm[n][m]);
  9.  
  10. int main(){
  11.         int comanda;        
  12.         int mat[n][m]={   {1,2,3,4},
  13.                            {4,5,6,5},
  14.                            {7,0,9,7} };                        
  15. do {
  16.   printf ("\n1 - Печать матрицы, 2 - Поиск нулей\n");
  17.   scanf("%d",&comanda);
  18.  
  19.  switch(comanda){
  20.      case 1: printm(mat);
  21.              break;
  22.      case 2: matrix(mat);
  23.              break;
  24.   };
  25.  }   while (comanda != 0);
  26.  return 0;
  27. }
  28.  
  29. void printm(int mm[n][m]){
  30.   int i,j;
  31.  
  32.   for (i=0; i<n; i++)
  33.     for (j =0; j<m; j++)
  34.       printf("%d ",mm[i][j]);
  35.     printf("\n");
  36. }
  37.  
  38. int matrix(int mm[n][m]){
  39.   int i,j;
  40.  
  41.   for (i=0; i<n; i++)
  42.     for (j=0; j<m; j++)
  43.       if (mm[i][j]==0)
  44.           printf("\n В столбце номер %d обнаружен ноль",j);
  45.   return 0;
  46. }

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

  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

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

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

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