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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Liniman
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 4
#1

Заполнить массив - C++

03.12.2011, 14:00. Просмотров 433. Ответов 4
Метки нет (Все метки)

Нужно заполнить массив 40 рандомными значениями, найти "максимальное" значение а все до "максимального" заполнить - 0 (нулями).
Прошу помощи именно с алгоритмом.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>
#include<time.h> 
#include<stdlib.h> 
 
int main() 
{
int max; 
int i;
int m[40];
 
for (i=0;i<40;i++)
    {   
        m[i]=rand()%10;     
    } 
 m[0]=max;
for (i=0;i<40;i++)
    {
        if
            (m[i]>max)
            max=m[i];
    }
}
Как найти макс.элемент до меня дошло, но вот с заменой всех элементов до максимального на 0(ноль) - не пойму.
Прошу помощи.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2011, 14:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнить массив (C++):

Заполнить массив первыми ста простыми числами, и вывести массив на экран - C++
Объявите одномерный целочисленный массив в котором не более 100 элементов выполните генерацию массива первыми 100 простыми числами....

Заполнить массив строк из файла. Массив заполняется, но выводится не корректно - C++
Здравствуйте! Такая проблема. В файле имена записаны в столбик и разделены точкой с запятой. Массив заполняется, но выводится не корректно....

Заполнить динамический массив из файла и записать массив обратно в файл - C++
Подскажите пожалуйста функцию которая будет заполнять Динамический массив из файла и обратную которая этот массив запишет в файл=)

Дан массив A[N]. заполнить массив В[N] элементами массива A[N], которые удовлетворяют двойному неравенству - C++
Дан массив A. заполнить массив В элементами массива A, которые удовлетворяют двойному неравенству: A&lt; A или A&lt; A. Незаполненные элементы...

Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию - C++
создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию. получилось вот что: #include...

Массив: Заполнить массив из 10 элементов случайным образом в интервале (0..3). - C++
Заполнить массив из 10 элементов случайным образом в интервале (0..3). Например: {1,2,0,3,1,2,3,3,0,1}

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
03.12.2011, 14:03 #2
Обьявите переменную c.
Когда вы нашли новый максимальный элемент, добавьте c=i (в 20 строчку после if)

C++
1
2
3
4
5
6
7
8
m[0]=max;
c=0;
//тут ваш цикл
if (m[i]>max)
          {
          max=m[i];
          c=i;
          }
Потом вам нужно будет заполнить элементы массива от нуля до m[c]!
0
Deleter
2 / 2 / 0
Регистрация: 10.01.2011
Сообщений: 35
03.12.2011, 14:12 #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
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <time.h> 
#include <stdlib.h> 
#include <conio.h>
#include <iostream>
 
using namespace std;
 
int main() 
{
int max = 0; 
int i;
int m[40];
 
for (i=0;i<40;i++)
        {       
           m[i]=rand()%10;         
        } 
 m[0]=max;
for (i=0;i<40;i++)
        {
           if(m[i]>max) max=m[i];
        }
    for(i=0 ; i < 40 ;i++)
    {
        if(m[i]!=max){
            m[i]=0;// меняеш на 0
        }else{
            break;// конец
        }
    }
    for(i=0;i<40;i++){
        cout<<m[i];// выводиш посмотреть
    }
    _getch();
}
Нашол макс элемент а потом идёш по массиву пока его не встретиш и всё меняеш на 0 когда нашол конец.
1
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
03.12.2011, 14:25 #4
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 <iostream>
#include <algorithm>
#include <iomanip>
#include <cstdlib>
 
const int n = 20;
 
int main()
{
    srand(time(0));
    int arr[n];
    for(int i = 0; i < n; i++)
    {
        arr[i] = rand()%50;
        std::cout<<std::setw(3)<<arr[i];
    }
    std::fill(arr,std::max_element(arr, arr+n),0);
    std::cout<<std::endl;
    for(int i = 0; i < n; i++)
        std::cout<<std::setw(3)<<arr[i];
    std::cout<<std::endl;
    system("pause");
    return 0;
}
0
easybudda
Модератор
Эксперт CЭксперт С++
9633 / 5581 / 948
Регистрация: 25.07.2009
Сообщений: 10,715
03.12.2011, 14:51 #5
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
 
void random_fill(int * arr, size_t count, int bottom, int top){
    while ( count-- )
        *arr++ = rand() % (top - bottom + 1) + bottom;
}
 
int * max_element(const int * arr, size_t count){
    return ( count < 2 ) ? (int*)arr : ( *arr < *(arr + count - 1) ) ? max_element(arr + 1, count - 1) : max_element(arr, count - 1);
}
 
void dump(const int * arr, size_t count){
    while ( count-- )
        printf("%d%c", *arr++, ( count ) ? ' ' : '\n');
}
 
#define NUM_ELEMENTS 40
#define BOTTOM 0
#define TOP 99
 
int main(void){
    int arr[NUM_ELEMENTS];
    
    srand(time(NULL));
    random_fill(arr, NUM_ELEMENTS, BOTTOM, TOP);
    printf("Before:\n");
    dump(arr, NUM_ELEMENTS);
    memset(arr, 0, (max_element(arr, NUM_ELEMENTS) - arr) * sizeof(int));
    printf("After:\n");
    dump(arr, NUM_ELEMENTS);
    
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2011, 14:51
Привет! Вот еще темы с ответами:

STL: Создать массив длины N. Заполнить массив рандом. Найти все различные числа массива - C++
Создать массив длины N (число N вводится с клавиатуры). Заполнить массив случайными целыми числам. Найти все различные числа массива. Для...

Заполнить массив A и массив B нулями - C++
кто соображает попробуйте сделать я просто дуб в этом . 1.Создать 2 массива A и B из элементов типа char по 10 элементов Заполнить...

заполнить массив - C++
Дана -целочисленная квадратная матрица А (6,6). Заполнить массив А следующим образом : 1 2..6 7 8... 12 13 14... 18 … 31 32......

заполнить массив - C++
Уже убедилась сегодня, что на форуме есть умнички, может поможете еще с одной задачкой? (Заполнить массив Y нарастающими произведениями...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.12.2011, 14:51
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru