Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 19.09.2009
Сообщений: 57
1

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

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

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

В массиве из 10 чисел поделить все отрицательные элементы на максимальный элемент массива.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.10.2009, 14:24
Ответы с готовыми решениями:

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

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

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

Ассемблерная вставка: все отрицательные элементы массива поделить на его максимальный элемент
али задание на ассемблер. найти максимум и все отрицательные числа поделить на максимум. Максимум...

5
423 / 227 / 87
Регистрация: 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
423 / 227 / 87
Регистрация: 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
47 / 47 / 3
Регистрация: 07.01.2009
Сообщений: 297
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
423 / 227 / 87
Регистрация: 25.03.2009
Сообщений: 744
03.10.2009, 15:14 6
ммм так я и не обещал всё делать правильно=)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2009, 15:14

Разделить все отрицательные элементы массива на последний элемент
Вместо массива выводит число, хотя должно выводить массив. Подскажите, пожалуйста, в чем ошибка

Разделить все элементы массива на максимальный элемент и напечатать полученный массив
Сформировать массив из 20 случайных целых чисел в диапазоне от 0 до 10. Разделить все элементы...

Заменить все отрицательные элементы двумерного массива на максимальный элемент
Здравствуйте уважаемые знатоки. Хотелось бы получить помощь по отписанной ниже программе....

Заменить все отрицательные элементы двумерного массива на максимальный элемент
Написать программу, которая заменяет все отрицательные элементы двумерного массива на максимальный...


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

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

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