Выбрать тройки идущих подряд цифр числа, сумма которых максимальная - C (СИ)

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

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

Составить программу на языке Си в целом типе данных, которая для любых допустимых и корректно записанных чисел этого типа в десятичном изображении, поступающих на стандартный ввод программы, выполняет указанное вариантом действие над их значениями. Нумерация цифр в записи числа ведется справа налево, от младших разрядов к старшим, начиная с нуля. Результатом действия над введенным числом является целое или булевское значение в зависимости от конкретного варианта, направляемое в стандартный вывод. Предусмотрите корректную обработку пустого файла.

Выбрать тройки идущих подряд цифр числа, сумма которых максимальная. < 1234567 0 > 567

Решение задачи: «Выбрать тройки идущих подряд цифр числа, сумма которых максимальная»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int c3max(int n, int m, int p)
{
    int q0,q1,q2,r3,s3,nn;
    
    if (n==0) return p;
    
    q0  = n % 10;
    q1  = (n /10) % 10;
    q2  = (n / 100) % 10;                     
    s3  = q0+q1+q2;
    r3  = (q2*10+q1)*10+q0;
    nn  = n /10;
    
    if (s3 > m) 
       return c3max(nn,s3,r3);
    else
       return c3max(nn,m,p);      
}
 
int main(int argc, char *argv[])
{
  int n;
  
  printf("n=");
  scanf("%d",&n);
  
  printf("%d\n",c3max(n,0,0));
  
  system("PAUSE");  
  return 0;
}

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

Код представлен на языке C и состоит из двух функций:

  1. c3max, которая принимает три аргумента типа int: n, m, p. Первый аргумент n представляет собой число, для которого нужно найти тройку цифр с максимальной суммой. Второй и третий аргументы m и p представляют собой текущую максимальную сумму и текущее максимальное значение функции соответственно. Внутри функции используется цикл, который проверяет все тройки идущих подряд цифр числа n. Если сумма этих цифр больше текущей максимальной суммы, то обновляется текущая максимальная сумма и текущее максимальное значение функции. В конце функция возвращает текущее максимальное значение функции.
  2. main - это точка входа в программу. Она считывает число с помощью функции scanf и передает его в функцию c3max вместе со значениями 0 и 0. Первое значение представляет собой текущую максимальную сумму, а второе - текущее максимальное значение функции. Результат работы функции c3max выводится на экран с помощью функции printf. После этого программа ожидает нажатия клавиши с помощью функции system, чтобы пользователь мог увидеть результат, а затем возвращает 0, чтобы указать, что программа успешно завершилась.

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


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

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

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