1 / 1 / 1
Регистрация: 09.03.2017
Сообщений: 120
1

Найти минимальный по модулю элемент массива

24.11.2017, 16:38. Показов 13077. Ответов 10

В одномерном массиве, состоящем из n целых элементов, вычислить:

1) минимальный по модулю элемент массива;

2) сумму модулей элементов массива, расположенных после первого элемента, равного нулю;

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <conio.h>
#include <math.h >
 
//Лабараторная работа 4 (10 вариант)
//Тема: Динамические одномерные массивы.
using namespace std;
 
int main(int argc,char* argv[])
{
    setlocale(LC_ALL, "rus");
    int i,n,ibeg=0,imin,min=0,sum=0;
    
      cout<<"\n Введите n= "; cin>>n;
      cout<<"\n Введите элементы массива:"<<endl<<endl;
      int*p=new int[n];
      for(i=0;i<n;i++)cin>>p[i];
        min=p[0];
        for(i=0;i<n;i++)
    if(fabs(p[i])<fabs(min))
    {
        min=p[i];
        imin=i;
    }
      cout<<"\nМинимальный элемент: "<<min<<endl;
      cout<<"\nПозиция минимального элемента:"<<imin+1<<endl;
    for(i=0;i<n;i++);
    if(p[i]==0)
    
    {
    
    ibeg=i;
    break;
    
    }
 
    for(i=ibeg+1;i<n;i++)sum+=p[i];
      cout<<"\n Сумма элементов расположенных после 1-го элемента равного нулю: "<<sum;
      cout<<"\n Преобразованный массив:"<<endl<<endl;
    for(i=0;i<n;i++)
    if(i% 2==false)
    {
        cout<<p[i]<<' ';
    }
    for(i=0;i<n-1;i++);
    if(i% 2)
    {
        cout<<p[i]<<' ';
    
    }
    getch();
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
1
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2017, 16:38
Ответы с готовыми решениями:

Найти минимальный по модулю элемент массива
Помогите пожалуйста,нужно создать программу,но не представляю,как это сделать,буду очень...

Найти минимальный по модулю элемент массива
Помогите написать программу. В одномерном массиве, состоящем из n целых элементов, вычислить: 1)...

Найти минимальный по модулю элемент массива
Разработать программу, соблюдая следующие требования:  использовать статические массивы;  число...

Динамический массив, найти минимальный по модулю элемент массива
Помогите пожалуйста.В одномерном массиве состоящем из n целых элементов, вычислить. минимальный по...

10
zss
24.11.2017, 17:31
  #2
 Комментарий модератора 
П.5.16.Правил
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
См. темы
Найти минимальный по модулю элемент массива
Найти сумму модулей элементов массива, расположенных после первого нулевого элемента
Переместить в начало массива элементы, стоявшие в четных позициях
0
1 / 1 / 1
Регистрация: 09.03.2017
Сообщений: 120
24.11.2017, 17:40  [ТС] 3
В одномерном массиве, состоящем из n целых элементов, вычислить:
минимальный по модулю элемент массива;
сумму модулей элементов массива, расположенных после первого элемента, равного нулю;
преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в четных позициях, а во второй половине — элементы, стоявшие в нечетных позициях.

Преобразование и сумма работают не корректно.
Подскажите пожалуйста,в чем ошибка?
Вот наработка (код)

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
#include <iostream>
#include <conio.h>
#include <math.h >
 
 
using namespace std;
 
int main(int argc,char* argv[])
{
    setlocale(LC_ALL, "rus");
    int i,n,ibeg=0,imin,min=0,sum=0;
    
      cout<<"\n Введите n= "; cin>>n;
      cout<<"\n Введите элементы массива:"<<endl<<endl;
      int*p=new int[n];
      for(i=0;i<n;i++)cin>>p[i];
        min=p[0];
        for(i=0;i<n;i++)
    if(fabs(p[i])<fabs(min))
    {
        min=p[i];
        imin=i;
    }
      cout<<"\nМинимальный элемент: "<<min<<endl;
      cout<<"\nПозиция минимального элемента:"<<imin+1<<endl;
    for(i=0;i<n;i++);
    if(p[i]==0)
    
    {
    
    ibeg=i;
    break;
    
    }
 
    for(i=ibeg+1;i<n;i++)sum+=p[i];
      cout<<"\n Сумма элементов расположенных после 1-го элемента равного нулю: "<<sum;
      cout<<"\n Преобразованный массив:"<<endl<<endl;
    for(i=0;i<n;i++)
    if(i% 2==false)
    {
        cout<<p[i]<<' ';
    }
    for(i=0;i<n;i++);
    if(i% 2)
    {
        cout<<p[i]<<' ';
    
    }
    getch();
    return 0;
}
0
174 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 719
24.11.2017, 17:43 4
Андреевич15, во сколько раз легче просить решение, чем пытаться сделать самому?
0
1 / 1 / 1
Регистрация: 09.03.2017
Сообщений: 120
24.11.2017, 17:57  [ТС] 5
Сам сделал все,что смог. Все попытки найти ошибку неудачны,поэтому пришлось обратиться за помощью.
0
управление сложностью
1687 / 1300 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
24.11.2017, 18:02 6
Цитата Сообщение от Андреевич15 Посмотреть сообщение
Сам сделал все,что смог. Все попытки найти ошибку неудачны,поэтому пришлось обратиться за помощью.
А какие попытки были ? Отладчиком пользовались ? принято выкладывать текст ошибки
0
1 / 1 / 1
Регистрация: 09.03.2017
Сообщений: 120
24.11.2017, 19:14  [ТС] 7
Не считает сумму элементов и не полностью выводит преобразованный массив
Миниатюры
Найти минимальный по модулю элемент массива  
0
174 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 719
24.11.2017, 19:17 8
Андреевич15, сделайте два дополнительных массива, в которые скопируйте все элементы с чётных и нечётных позиций. После этого просто по очереди перенесёте значения в основной. Это наиболее просто способ, который не потребует каких-то сложных алгоритмов.
0
1 / 1 / 1
Регистрация: 09.03.2017
Сообщений: 120
24.11.2017, 19:42  [ТС] 9
все-равно не пойму,что у меня здесь не так
0
1718 / 567 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
24.11.2017, 20:47 10
Лучший ответ Сообщение было отмечено Андреевич15 как решение

Решение

Цитата Сообщение от Андреевич15 Посмотреть сообщение
что у меня здесь не так
В первой программе строка 27, во второй 26
C++
1
2
3
4
5
6
7
8
9
for(i=0;i<n;i++);
    if(p[i]==0)
    
    {
    
    ibeg=i;
    break;
    
    }
Для кого и для чего цикл ? Что выделяешь фигурными скобками ?
И ниже тоже.
1
1 / 1 / 1
Регистрация: 09.03.2017
Сообщений: 120
25.11.2017, 02:58  [ТС] 11
Все дошло..... символ ";" после скобок в конце цикла оказался лишним. Его убрал,все заработало отлично. Всем спасибо )))
Цикл этот для поиска нулевого элемента.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2017, 02:58
Помогаю со студенческими работами здесь

Массивы. Найти минимальный по модулю элемент массива. Найти сумму модулей элементов после первого нуля
народ,траблы,никак не могу понять массивы,подскажите пожалуйста /*1. Найти минимальный по модулю...

Минимальный по модулю элемент массива
1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) минимальный по...

Минимальный по модулю элемент массива
В одномерном массиве, состоящем из n целых элементов,вычислить: 1)минимальный по модулю элемент...

Вычислить минимальный по модулю элемент массива
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1.минимальный по модулю...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru