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

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

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

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

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

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

В массиве из 10 чисел поделить все отрицательные элементы на максимальный элемент массива.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2009, 14:24     Разделить все отрицательные элементы массива на его максимальный элемент
Посмотрите здесь:

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Андрейка
419 / 223 / 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
Регистрация: 19.09.2009
Сообщений: 57
03.10.2009, 15:00  [ТС]     Разделить все отрицательные элементы массива на его максимальный элемент #3
хм...не мог бы пояснить как происходит заполнение массива?
Андрейка
419 / 223 / 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.
Ёрик
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". При делении на макс. число массива у нас получается всегда ноль,т.к. это максимальнывй элемент,получается можно просто в твоем случае занулить все положительные
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2009, 15:14     Разделить все отрицательные элементы массива на его максимальный элемент
Еще ссылки по теме:

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

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

Найти минимальный элемент массива, умножить на него все отрицательные элементы, стоящие слева - C++
Вообщем условие такое: Среди отрицательных элементов массива найти минимальный, умножить на него все отрицательные элементы стоящие левее...

В массиве Х (N) найти максимальный элемент массива и упорядочить по возрастанию все элементы - C++
написать программу на языке С++. Задание: В массиве Х (N) найти максимальный элемент массива и упорядочить по возрастанию все элементы,...

В массиве X(N) найти максимальный элемент массива и упорядочить по возрастанию все элементы - C++
В массиве X(N) найти максимальный элемент массива и упорядочить по возрастанию все элементы, расположенные после найденного максимального...

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


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

Или воспользуйтесь поиском по форуму:
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
03.10.2009, 15:14     Разделить все отрицательные элементы массива на его максимальный элемент #6
ммм так я и не обещал всё делать правильно=)
Yandex
Объявления
03.10.2009, 15:14     Разделить все отрицательные элементы массива на его максимальный элемент
Ответ Создать тему
Опции темы

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