Найти максимальное значение среди всех элементов матрицы, расположенных в отмеченных столбцах - C (СИ)

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

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

Дана целочисленная матрица A(M,N), где М- четно.. Столбец назовем отмеченным, если в нем больше половины элементов являются числами Фибоначчи. Найти максимальное значение среди всех элементов, расположенных в отмеченных столбцах. (Члены матрицы вводятся с клавиатуры)

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
#define M 6
#define N 5
 
int Matr[M][N];
 
/* Проверка, является ли n числом Фибоначчи */
 
int isFib(int n)
{
    int c=1, p=1,q;
    while (1)
    {
        if (c == n) return 1;
        if (c >  n) return 0;
        q=c;
        c=c+p;  
        p=q;
    }
}       
 
int isMark(int k)
{
    int i,c=0;
    for (i=0; i<M; i++)
      if (isFib(Matr[i][k])) c++;
    return (c > (M/2));
}    
 
int main(int argc, char *argv[])
{
  int i,j,p=0,max;
 
  /* ввод матрицы */
  
  for (i=0; i<M; i++)
  {
   for (j=0; j<N; j++)
   {
       printf("M[%d,%d]=",i,j);
       scanf("%d",&Matr[i][j]);
   }     
   printf("\n");
  }
   
  /*  Поиск максимума в отмеченных */ 
 
  for (j=0; j<N; j++)
   if (isMark(j))
      {
         if (p==0) max=Matr[0][j];
         for (i=0; i<M; i++) 
             if (Matr[i][j] > max) max=Matr[i][j];
         p=1;
      }              
  
  /*  Вывод результата */  
 
  printf("max=%d\n",max);
 
  system("PAUSE");  
  return 0;
}

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

  1. Объединение двух чисел с помощью операции сложения.
  2. Использование условного оператора if для проверки условия.
  3. Использование цикла for для выполнения повторяющихся действий.
  4. Использование функции scanf для ввода данных в программу.
  5. Использование функции printf для вывода данных из программы.
  6. Создание матрицы с помощью оператора присваивания.
  7. Использование функции isMark для проверки, является ли номер столбца отмеченным.
  8. Использование функции isFib для проверки, является ли число числом Фибоначчи.
  9. Использование условного оператора if для проверки, является ли максимальное значение равным последнему числу.
  10. Использование оператора присваивания для обновления значения максимального числа.
  11. Использование функции system для приостановки выполнения программы.
  12. Возвращение значения 0 функцией main, что означает успешное выполнение программы.

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


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

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

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