Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C] Максимальная сумма цифр элементов массива


Автор: Denzel666 20.12.2006, 01:05
Задача показалась простой но не на деле...Памагите ... 

Вот это задание:
вывести на экран элементы массива целых чисел имеющих максимальную сумму цифр...

Если кто в сети помогите...

 smile 

Автор: PrinceMike 20.12.2006, 01:16
если объяснишь, то что ты хочешь, то может и помогу, я просто не врубился что нужно

Автор: Kuvaldis 20.12.2006, 01:57

M
Kuvaldis

Не забываем указывать язык программирования в названии темы 

Автор: sergejzr 20.12.2006, 02:01
Задача на рюкзак.

Автор: Pete 20.12.2006, 12:25
Код

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void p( int *a, int n )
{
  int i;
  
  putchar( '[' );
  for (i = 0; i < n; i++)
    printf( i == n - 1 ? "%d]\n" : "%d, ", a[i] );
}

int main( void )
{
  const int a[] = { 12, 123, 87, 281, 1111119 };
  const int n = 5; /* quantity of numbers in array */
  
  int i, tmp;
  int max = 0;
  int *sum; /* array for digits' sums */
  
  sum = (int *) malloc( n*sizeof(int) );
  for (i = 0; i < n; i++) {
    tmp = a[i];
    sum[i] = 0;
    while (tmp > 0) {
      sum[i] += tmp%10;
      tmp = tmp/10;
    }
  }
  
  p( sum, n );
  
  for (i = 0; i < n; i++)
    if (sum[i] > max) max = sum[i];
  
  putchar( '\n' );
  for (i = 0; i < n; i++)
    if (sum[i] == max) printf( "%d\n", a[i] );
  
  return 0;
}

Автор: Denzel666 24.12.2006, 02:58
Я не понял че в этой задаче произошло...

там экране появилось вот что

87
1111119

Это че?


Задача состоит в следующем....
в массиве ,допустим a[]={45,435,234,65,345} , нужно вывести a[1] и a[4] 435 и 345 соответственно...потому что их сумма явл. максимальной -12...(4+3+5)...

Автор: Rockie 24.12.2006, 03:27
Цитата(sergejzr @  20.12.2006,  02:01 Найти цитируемый пост)
Задача на рюкзак.

 smile 

Автор: Dov 24.12.2006, 15:02
Цитата(Denzel666 @  24.12.2006,  01:58 Найти цитируемый пост)
Я не понял че в этой задаче произошло...

там экране появилось вот что

87
1111119

Это че?


Denzel666, это же то, шо ты просил. Числа с максимальной суммой ихних цифер.  smile 

Автор: Pete 24.12.2006, 15:45
Цитата(Denzel666 @  20.12.2006,  02:05 Найти цитируемый пост)
вывести на экран элементы массива целых чисел имеющих максимальную сумму цифр

 smile

Добавлено @ 15:47 
Цитата(Pete @  20.12.2006,  13:25 Найти цитируемый пост)
Код

const int a[] = { 12, 123, 87, 281, 1111119 };

Думаю, подставить здесь свои числа не составит труда...  smile 

Автор: Dov 24.12.2006, 18:46
Pete, а ты либо память освободи, либо организуй для sum статический массив.   smile  
Хотя, как по мне, там никакой массив не нужен.   smile 

Автор: Denzel666 25.12.2006, 00:43
[3,6,15,11,15]


Это че появляется?

Добавлено @ 00:46 
Посмотрите пожалуйста тему суммирование рядов...

Автор: Pete 25.12.2006, 00:47
А ты подумай. Что это может быть для массива [ 12, 123, 87, 281, 1111119 ]?

Цитата(Dov @  24.12.2006,  19:46 Найти цитируемый пост)
Pete, а ты либо память освободи, либо организуй для sum статический массив.

Да, спасибо. Ну, здесь можно простить)

Добавлено @ 00:48 
Там даже комментарии есть.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)