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

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

Войти
Регистрация
Восстановить пароль
 
Задрот С
0 / 0 / 0
Регистрация: 19.09.2009
Сообщений: 57
#1

Разделить все отрицательные элементы массива на его максимальный элемент - C++

03.10.2009, 14:24. Просмотров 681. Ответов 5
Метки нет (Все метки)

Помогите решить задачу?пожалуйста.

В массиве из 10 чисел поделить все отрицательные элементы на максимальный элемент массива.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2009, 14:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разделить все отрицательные элементы массива на его максимальный элемент (C++):

Все отрицательные элементы заданного массива L (11) разделить на максимальный элемент этого массива. Вывести максимальный элемент, начальный и преобра - C++
Помогите составить программу на С++

Разделить все элементы массива на его максимальный элемент - C++
Ребят, помогите пожалуйста.:boredom: 1.разделить все элементы массива на максимальный элемент этого массива.

Разделить все элементы массива на его первый элемент - C++
Задание. Сделать это задание: Дан массив целых чисел. а) Разделить все элементы массива на его первый элемент; б) увеличить все элементы...

В массиве заменить все отрицательные элементы на минимальный элемент, а все положительные – на максимальный - C++
В массиве из 10 целых чисел заменить все отрицательные элементы на минимальный элемент, а все положительные – на максимальный.

Дан массив а1,а2,,…,аn. Переставить его элементы так, чтобы в начале массива расположились все его неотрицательные элементы, а в конце – отрицательные - C++
Помогите плиз написать программу: Дан массив а1,а2,,…,аn. Переставить его элементы так, чтобы в начале массива расположились все его...

Дан массив а1+ a2+…+an Переставить его элементы так чтобы в начале массива расположились все его неотрицательные элементы, а в конце - отрицательные - C++
Дан массив а1+ a2+…+an помогите переставить его элементы так чтобы в начале массива расположились все его неотрицательные элементы, а в...

5
Андрейка
420 / 224 / 27
Регистрация: 25.03.2009
Сообщений: 744
03.10.2009, 14:39 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
#include <iostream>
#include <algorithm>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    const int size = 10;
    int arr[size];
    for (int i = 0 ; i < sizeof(arr)/sizeof(*arr) ; i++)
        cin>>*(arr+i);
    int max = *max_element(arr,arr+10);
    cout<<"max element"<<' '<<max<<endl;
    return 0;
}
максимум найден дальше иди по массиву если встречаешь arr[i]<0 то дели его на макс , пиши сам всё сказал)
0
Задрот С
0 / 0 / 0
Регистрация: 19.09.2009
Сообщений: 57
03.10.2009, 15:00  [ТС] #3
хм...не мог бы пояснить как происходит заполнение массива?
0
Андрейка
420 / 224 / 27
Регистрация: 25.03.2009
Сообщений: 744
03.10.2009, 15:09 #4
Ну в общем видимо это не понятно sizeof(arr)/sizeof(*arr) . sizeof(arr) - высчитываем сколько наш массив занимает в байтах , вроде в винде int = 4 байта поэтому sizeof(arr) = 40; то есть 4*10 элементов , далее sizeof(*arr) эквивалентно sizeof(arr[0]) или sizeof(*(arr+0)) если не знаешь почему так почитай адресную арифметику а пока что считай что *(arr+i) = arr[i] , так далее sizeof(arr[0]) количество байт занимаемое нашим первым элементом а так как первый элемент имеет тип int отсюда получаем sizeof(arr[0]) = 4 делим 40 на 4 получаем 10 и того (for int i=0;i<10;i++) ну а так далее понятно ну и далее алгоритм max_element из STL в общем он ищет макс элемент в диапазоне (arr,arr+10) так как arr это указатель на первый элемент соотв arr+10 указатель на последний элемент ( опять же адресная арифмеика ) считай что наш алгоритм возвращает указатель на макс элемент а чтобы получить значение нужно как известно указатели разименовывать отсюда и *max_element.
0
Ёрик
46 / 46 / 2
Регистрация: 07.01.2009
Сообщений: 298
03.10.2009, 15:13 #5
Андрейка,в твоем случае учти,что результат будет int(целое число)!!Т.е. деление будет без остатка! Т.е. если число положительное было в массиве,то у тебя всегда будет полчаться нуль в результрующем массиве.
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <limits.h>
 
double GetMax(double *arr,int N)
{
    int i;
    double max = arr[0];
    for(i = 1; i < N; ++i)
    {
        if(max > arr[i])
        {
            max = arr[i];
        }
    }
 
    return max;
}
 
int main()
{
    int i;
    double maxElem;
    const int n = 10;
    double arr[n];
 
 
    srand(time(0));
 
    rand();
 
    for(i = 0; i < n; ++i)
    {
        arr[i]= rand ()% INT_MAX - INT_MAX/2;
        printf("%lf\n",arr[i]);
    }
 
    maxElem = GetMax(arr,n);
 
 
    for(i = 0; i < n; ++i)
    {
        if(arr[i] < 0)
        {
            arr[i] = arr[i] / maxElem;
        }
    }
 
 
 
    puts("\n");
    printf("After dividing:\n");
 
    for(i = 0; i < n; ++i)
    {
        printf("%lf\n",arr[i]);
    }
 
    return 0;
}
ммм так я и не обещал всё делать правильно=)
У тебя правильно, но нелогично. Напр. у нас массив : [ 1 2 3 4 5]
Макс. элемент - "5". При делении на макс. число массива у нас получается всегда ноль,т.к. это максимальнывй элемент,получается можно просто в твоем случае занулить все положительные
0
Андрейка
420 / 224 / 27
Регистрация: 25.03.2009
Сообщений: 744
03.10.2009, 15:14 #6
ммм так я и не обещал всё делать правильно=)
0
03.10.2009, 15:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2009, 15:14
Привет! Вот еще темы с ответами:

Функция меняет все отрицательные элементы массива на максимальный - C++
Написать функцию, которая принимает одномерный массив и его размерностью. Функция меняет в массиве все элементы меньше ноля, на...

Найти максимальный элемент, сумму чётных элементов массива и вывести отрицательные элементы на экран - C++
Дан одномерный массив, состоящий из N целочисленных элементов. 11.1. Ввести массив с клавиатуры. 11.2. Найти максимальный элемент. ...

Разделить все элементы одномерного массива с четными номерами на первый элемент - C++
разделить все элементы одномерного массива с четными номерами на первый элемент (первый элемент отличен от 0). Hапишите полный текст...

Данный массив A (n). Все положительные его элементы поместить в начало массива B (n), а все отрицательные - в начало массива C (n). Подсчитать количес - C++
Данный массив A (n). Все положительные его элементы поместить в начало массива B (n), а все отрицательные - в начало массива C (n)....


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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