Форум программистов, компьютерный форум CyberForum.ru

Замена всех максимальных чисел на нули - C++

Восстановить пароль Регистрация
 
Нубарик
 Аватар для Нубарик
4 / 4 / 1
Регистрация: 06.11.2010
Сообщений: 40
06.11.2010, 10:59     Замена всех максимальных чисел на нули #1
привет всем, помогите плз вот в такой задачке.
*
Задано одномерный массив из 10 элементов, которые задаются случайно.

Заменить максимальные элементы нулями (к примеру, 58748458123 превратится в 50740450123).
*
Вот к чему я дошел: всё работает, но меняет ток первое максимальное число =( ,остальные не трогает, подскажите где я недосмотрел, а то я ток начинаю в С++ работать.
******надо на БИЛДЕРЕ****
Изображения
 
Вложения
Тип файла: txt kod.txt (738 байт, 21 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
06.11.2010, 11:10     Замена всех максимальных чисел на нули #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <cstdlib>
#include <iostream>
#include <ctime>
using namespace std;
 
int main()
{
    const int SIZE = 10;
    int arr[SIZE];
    int maks,i;
 
    cout<<"Ishodnyj: ";
    srand(time(NULL));
    for(i=0; i<SIZE; ++i)
    {
        arr[i]=rand()%10;
        cout<<arr[i];
    }
 
    maks = arr[0];
    for(i=0; i<SIZE; ++i)
        if(arr[i]>maks)
            maks = arr[i];
 
    cout<<"\nMaks element: "<<maks;
 
        for(i=0; i<SIZE; ++i)
        if(arr[i]==maks)
            arr[i]=0;
 
    cout<<"\nResultat: ";
    for(i=0; i<SIZE; ++i)
        cout<<arr[i];
 
    cout<<endl;
    system("pause");
    return 0;
}
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
06.11.2010, 11:20     Замена всех максимальных чисел на нули #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <vector>
#include <algorithm>
#include <functional>
#include <iostream>
#include <iterator>
 
int random_num() { return std::rand() % 10; }
 
int main()
{
        std::vector<int> v(10);
        std::generate(v.begin(), v.end(), random_num);
 
        std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
        std::cout << std::endl;
 
        int max = *std::max_element(v.begin(), v.end());
        std::replace_if(v.begin(), v.end(), std::bind1st(std::equal_to<int>(), max), 0);
 
        std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
        std::cout << std::endl;
 
        return 0;
}
Нубарик
 Аватар для Нубарик
4 / 4 / 1
Регистрация: 06.11.2010
Сообщений: 40
06.11.2010, 11:24  [ТС]     Замена всех максимальных чисел на нули #4
Спасибо тем кто хочет помочь, но можно попроще, ну где то на таком уровне как я код прикрепил. а то роботу не примут.
dihlofos
06.11.2010, 11:28
  #5

Не по теме:

Нубарик, ну у меня вроде не сложнее, чем у вас)

Нубарик
 Аватар для Нубарик
4 / 4 / 1
Регистрация: 06.11.2010
Сообщений: 40
06.11.2010, 11:36  [ТС]     Замена всех максимальных чисел на нули #6
да-да, я уже врубился, прочёл код ещё разок.
завтыкал вот здесь :

Код
     
 for(i=0; i<SIZE; ++i)
 if(arr[i]==maks)
 arr[i]=0;
и блин писал вить так, не канало. а тут пошло. лан оформлю свою работу.
Спасибо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2011, 04:06     Замена всех максимальных чисел на нули
Еще ссылки по теме:

Генерация всех максимальных независимых множеств графа C++
C++ Два максимальных значения из 10 целых чисел
C++ Из 10 чисел вводимых из клавиатуры, найти 2 максимальных

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Punisher1992
0 / 0 / 0
Регистрация: 04.04.2011
Сообщений: 12
28.12.2011, 04:06     Замена всех максимальных чисел на нули #7
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace lab_array_2
{
    class Class
    {
        static int[] Input()
        {
            Console.WriteLine("введите размерность массива");
            int n = int.Parse(Console.ReadLine());
            int[] a = new int[n];
            for (int i = 0; i < n; ++i)
            {
                Console.Write("a[{0}]= ", i);
                a[i] = int.Parse(Console.ReadLine());
            }
            return a;
        }
 
        static int Max(int[] a)
        {
            int max = a[0];
            for (int i = 1; i < a.Length; ++i)
                if (a[i] > max) 
                    max = a[i];
 
            return max;
        }
 
        static void Main()
        {
            int[] myArray = Input();
            int max = Max(myArray);
            for (int i = 0; i < myArray.Length; ++i)
                if (myArray[i] == max) 
                    myArray[i]=0;
            Console.WriteLine("Количество максимальных элементов = "+myArray);
            Console.ReadLine();
        }
    }
 
 
}
 Комментарий модератора 
Используйте теги форматирования кода!
Yandex
Объявления
28.12.2011, 04:06     Замена всех максимальных чисел на нули
Ответ Создать тему
Опции темы

Текущее время: 02:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru