Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C] Поиск числа с максимальной суммой цифр 
V
    Опции темы
Denzel666
Дата 22.12.2006, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 13.12.2006
Где: Дзержинск

Репутация: -1
Всего: нет



Запарка ...Хелпаните...

Вывести на на экран эелементы массива целых чисел, имеющих максимальную сумму цифр...
PM MAIL   Вверх
Kuvaldis
Дата 22.12.2006, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


механик-вредитель
***


Профиль
Группа: Участник Клуба
Сообщений: 1189
Регистрация: 16.6.2006
Где: Минск

Репутация: 32
Всего: 61




M
Kuvaldis

Реализация на китайском пойдет?
Кто будет за тебя указывать нужный язык программирования??? 
 



--------------------
Помни - когда ты спишь, враг не дремлет
Спи чаще и дольше, изматывай врага бессоницей
PM MAIL ICQ   Вверх
Denzel666
Дата 22.12.2006, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 13.12.2006
Где: Дзержинск

Репутация: -1
Всего: нет



Запарка ...Хелпаните...

Вывести на на экран эелементы массива целых чисел, имеющих максимальную сумму цифр...
[Язык Си]

PM MAIL   Вверх
doomik
Дата 22.12.2006, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Одинокий волк
**


Профиль
Группа: Участник
Сообщений: 360
Регистрация: 25.10.2005
Где: #vingrad

Репутация: 3
Всего: 15



Код

#include <stdio.h>

int Sumof(int Arr[], int I); // Прототип функции

int main()
{
    int I, Max = -2147483647, ArrSize, Id;

        printf("Enter array size:\n"); // Читаем длину массива
        scanf("%d", &ArrSize);
        
        int Arr[ArrSize]; // Создаём массив 
        for ( I = 0; I != ArrSize; I++ ) 
            {
                printf("Enter %d element:\n", I); // Заполняем массив числами
                scanf("%d", &Arr[I]);
                if ( Sumof(Arr, I) > Max ) { // Вызываем функцию и сравниваем разультат с ֵMax
                    Max = Arr[I];
                    Id = I;
                }
            }
    printf("Element Id: %d\nMax element: %d\n", Id, Max); // Печатаем максимальный елемент и его сумму
return 0;
}

int Sumof(int Arr[], int I) // Функция разделает число и подчитавает его сумму чисел
{
    int Sum;
        while ( Arr[I] != 0 ) {
            Sum = Sum + Arr[I] % 10;
            Arr[I] = Arr[I] / 10;
            
        }
Arr[I] = Sum;
return Arr[I];
}




--------------------
"Единственный способ изучать новый язык программирования - писать на нем 
программы." 
- Brian Kernighan

Remember, st1ng3r 
/server irc.ircline.ru /j #vingrad
PM   Вверх
Dov
Дата 22.12.2006, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 50
Всего: 88



Цитата(doomik @  22.12.2006,  13:57 Найти цитируемый пост)
 
Код
printf("Enter array size:\n"); // Читаем длину массива
scanf("%d", &ArrSize);
int Arr[ArrSize]; // Создаём массив
 

doomik, и хде ж тя так учили массив создавать?  smile 


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Denzel666
Дата 23.12.2006, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 13.12.2006
Где: Дзержинск

Репутация: -1
Всего: нет



А можно без функций попроще...И если не сложно с комментариями

Добавлено @ 00:30 
Цитата
Код

int Sumof(int Arr[], int I); // Прототип функции




И что в вашем понимании протатип фцнкции?
PM MAIL   Вверх
paSha_X
Дата 23.12.2006, 03:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 5.12.2006
Где: Беларусь, Минск

Репутация: 1
Всего: 2



Denzel666
Ну ты даёшь, хоть бы книжку открыл глянул немного, хоть что чем называется знать, ладно уже решать, ну хоть понимать.......толку задачи тогда эти делать........  
PM MAIL WWW IM ICQ AOL YIM MSN   Вверх
V.A.KeRneL
  Дата 23.12.2006, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vadim A. Kazantsev
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 3.12.2006
Где: Moscow, Russia

Репутация: 7
Всего: 14



Цитата(paSha_X @  23.12.2006, 03:07 Найти цитируемый пост)

Denzel666
.......толку задачи тогда эти делать........

Мне кажется, чтобы просто сдать!.. smile

Цитата(Dov @  22.12.2006, 22:36 Найти цитируемый пост)

Цитата(doomik @  22.12.2006,  13:57 Найти цитируемый пост)

Код
printf("Enter array size:\n"); // Читаем длину массива
scanf("%d", &ArrSize);
int Arr[ArrSize]; // Создаём массив


doomik, и хде ж тя так учили массив создавать?  smile


Цитата(doomik @  22.12.2006, 14:57 Найти цитируемый пост)

Код

/*...*/ Max = -2147483647 /*...*/


Да и магические числа тоже... smile


Это сообщение отредактировал(а) V_A_KeRneL - 28.12.2006, 16:03


--------------------
«C'est un pense-creux d'ici. C'est le meilleur et le plus irascible homme du monde...» © Ф.М. Достоевский, «Бесы»
---/)/)---(\.../)---(\(\
--(':'=)---(=';'=)---(=':')
(")(")..)-(").--.(")-(..(")(")

PM MAIL IM ICQ AOL YIM MSN   Вверх
apook
Дата 23.12.2006, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 10
Всего: 23



Код

#include "stdio.h"





void main()
{
int quick_matrix[5][11] ={
{ 1, 2, 5, 8, 7, 9, 10, 5, 5, 3 }, //=55
{ 5, 2, 8, 6, 2, 2, 9, 8, 1, 9 },  //=43
{ 8, 1, 3, 5, 6, 7, 9, 0, 2, 0 },  //=41
{ 4, 1, 7, 9, 1, 4, 9, 6, 5, 10 }, //=56 <--сумма этого ряда больше
{ 4, 7, 4, 4, 2, 4, 0, 5, 5, 7 }   //=42
    }, i, j, q=0;
long x, y=0;


for( i=0; i <5; i++ )
{
    for( x=0, j=0; j <11; j++ )
    {
         x=x +quick_matrix[i][j];  
         }

printf( "Ряд %d == %ld\n", i, x );

if( y <x )
{
    q=i;
    y=x;
    }
    }


printf( "\nРяд №%d имеет наибольшую сумму( %ld )\n", q, y );

return;
}

надеюсь по столбцам не надо искать


Это сообщение отредактировал(а) apook - 23.12.2006, 12:09


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
Dov
Дата 23.12.2006, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 50
Всего: 88



Цитата(apook @  23.12.2006,  11:08 Найти цитируемый пост)
надеюсь по столбцам не надо искать

Не только по столбцам, но и по строкам тоже не надо. 
apook, ты хоть читай, о чём речь идёт.  smile 


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
doomik
Дата 23.12.2006, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Одинокий волк
**


Профиль
Группа: Участник
Сообщений: 360
Регистрация: 25.10.2005
Где: #vingrad

Репутация: 3
Всего: 15



Цитата
doomik, и хде ж тя так учили массив создавать?  smile

Меня не учили сам учился  smile 

У меня всё скомпилилось без ошибок( gcc ) 
Попробывал через MinGW Developer Studio тоже скомпилилось только переменная Max выдаёт странное число. 
Тогда я заменил старую функцию на эту функцию и всё бегает.

Код

int Sumof(int Arr[], int I) 
{
    int Sum = 0, CopyArr = 0;
  CopyArr = Arr[I];
        while ( CopyArr != 0 ) {
            Sum = Sum + CopyArr % 10;
            CopyArr = CopyArr / 10;
            
        }
Arr[I] = Sum;
return Arr[I];
}




Microsoft Visual C++ 6.0 - Выдал 3 ошибки 
Цитата

error C2057: expected constant expression
error C2466: cannot allocate an array of constant size 0
error C2133: 'Arr' : unknown size

И все они на 9 строке --> т.е там где я и создавал массив.
Вот это упрямое существо не могу заставить компилить smile

Цитата
Да и магические числа тоже... smile

Почему магические  smile  ? это размер максимальный типа  int -> int  -2,147,483,648 -> +2,147,483,647


Denzel666
Цитата
А можно без функций попроще...И если не сложно с комментариями

Можно.

Код

#include <stdio.h>
int main()
{
    int I, Max = -2147483647, ArrSize, Id;
        printf("Enter array size:\n"); // Читаем длинну массива
        scanf("%d", &ArrSize);
        
        int Arr[ArrSize]; // Создаём массив 
    int Sum[ArrSize]; // Создаём ещё один для суммы
        
        for ( I = 0; I != ArrSize; I++ ) 
            {
                printf("Enter %d element:\n", I); // Заполняем массив числами
                scanf("%d", &Arr[I]);
                Sum[I] = 0; // Инициализируем массив Sum нулём
        }
//  Разделяем каждое число в массиве Arr  и присваиваем сумму к массиву Sum
        for ( I = 0; I != ArrSize; I++ ) {  
                while ( Arr[I] > 0 ) {
                    Sum[I] = Sum[I] + Arr[I] % 10;
                    Arr[I] = Arr[I] / 10;
                }
            }

/* Ищем максимальную сумму  в массиве Sum, если найдена то Id получает её индекс а Max  получает сумму */
        for ( I = 0; I != ArrSize; I++ ) {
            if ( Sum[I] > Max ) 
                Max = Sum[I];
                Id = I;
        }
                
// Печатаем максимальную сумму найденную в массиве + её индекс        
        printf("Element Id: %d\nMax element: %d\n", Id, Max);
return 0;
}

Пробывал компилить под MinGW Developer Studio всё бегает но в Microsoft Visual C++ 6.0 опять проблемы с массивом  smile .
Я считаю вариант с функцией был лучше но это моё мнение  smile 

Цитата
И что в вашем понимании протатип фцнкции? 

В книжке всё должно быть расписано  smile 

Это сообщение отредактировал(а) doomik - 23.12.2006, 15:32


--------------------
"Единственный способ изучать новый язык программирования - писать на нем 
программы." 
- Brian Kernighan

Remember, st1ng3r 
/server irc.ircline.ru /j #vingrad
PM   Вверх
Dov
Дата 23.12.2006, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 50
Всего: 88



Цитата(doomik @  23.12.2006,  14:27 Найти цитируемый пост)
Microsoft Visual C++ 6.0 - Выдал 3 ошибки 

Дело в том, что размер статического массива должен быть известен во время компиляции. Позтому он должен быть константой. Как оно могло у тебя работать, я диву даюсь.  smile 



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Denzel666
Дата 24.12.2006, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 13.12.2006
Где: Дзержинск

Репутация: -1
Всего: нет



Задачу не поняли наверно...
Нужно например в массиве a{34.56.789.32.987} вывести 3 и 5-й элементы-a[2]=789 и a[4]=987...Потому что сумма цифр их в массиве является максимальной-24(7+8+9)...
PM MAIL   Вверх
Pete
Дата 24.12.2006, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 318
Регистрация: 5.1.2006
Где: Москва

Репутация: 7
Всего: 12



Что-то боянов много...


--------------------
Совет учиться на ошибках других бесполезен; научиться чему-либо можно только на собственных ошибках. (Бернард Шоу)
Не откладывай на завтра то, что можешь сделать сегодня. (Пословица)
А теперь выпишем точное значение числа пи... (Препод)
Жахни, Пендальф! © Гоблин
PM   Вверх
Dov
Дата 24.12.2006, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 50
Всего: 88



Цитата(Denzel666 @  24.12.2006,  00:07 Найти цитируемый пост)
Задачу не поняли наверно...

Denzel666, ты сам её не понял, даже после того, как Pete тебе решение выложил в дубликате твоей темы. 


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.1083 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.