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

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

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

Не выводится номер минимального элемента массива - C++

14.02.2014, 23:35. Просмотров 385. Ответов 10
Метки нет (Все метки)

Добрый вечер. Наверно лёгкая проблема, но у меня не получается её решить.
Последовательно задана формулой ai=i2+0,4
Программа должен вывести значение максимального и минимального элемента, а также их порядковый номер.
Но возникает две ошибки:
http://4put.ru/pictures/max/854/2625659.jpg
1) максимальный элемент должен быть равен 625,4, а не ровно 625.
2) совсем беда с номером минимального элемента.
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
#include "stdafx.h"
#include <iostream>
#include <math.h>
int _tmain(int argc, _TCHAR* argv[]){
int *a, i, maxindex, minindex;
    a=new int[25];
    double min, max;
for (i=1;i<=25;i++)
      a[i]=i*i+0.4;
{
max=a[1];
for (int i=1; i<=25; i++)
  {
   if (a[i]>max)
      { 
       max=a[i];
       maxindex=i;
      }
  
   }
}
{
min=a[1];
for (int i=1; i<=25; i++)
  {
   if (a[i]<min)
      { 
       min=a[i];
       minindex=i+1;
      }
  
   }
}
printf("max=%f\n",max);
printf("min=%f\n",min);
printf("maxindex=%i\n",maxindex);
printf("minindex=%i\n",minindex);
system("pause");
}
Может кто-нибудь попробует разобраться.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2014, 23:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не выводится номер минимального элемента массива (C++):

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

Найти номер минимального элемента массива - C++
составить алгоритм и консольную программу для данной задачи: 1) найти номер минимального элемента массива 2) найти сумму элементов...

Найти номер минимального элемента массива - C++
Здравсвуйте, очень нужна ваша помощь, нужно сдать работу, а я вообще не имею понятия как её выполнить, очень надеюсь на вашу помощь! ...

Вычислить номер минимального элемента массива - C++
Есть следующая задача: В одномерном массиве, состоящем из n вещественных элементов вычислить номер минимального элемента массива. У...

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

Вычислить номер минимального элемента массива - C++
вычислить: 1) номер минимального элемента массива; 2) сумму элементов массива, расположенных между первым и вторым отрицательными ...

10
S_el
2113 / 1633 / 308
Регистрация: 15.12.2013
Сообщений: 6,396
14.02.2014, 23:39 #2
Цитата Сообщение от SKED Посмотреть сообщение
Программа должен вывести значение максимального и минимального элемента, а также их порядковый номер.
В чем подвох?и так понятно,что минимальный первый,а максимальный последний.

Цитата Сообщение от SKED Посмотреть сообщение
1) максимальный элемент должен быть равен 625,4, а не ровно 625.
Вместо int для массива double сделайте.

Цитата Сообщение от SKED Посмотреть сообщение
maxindex, minindex;
Нулем инициализируйте.
1
Genn55
374 / 221 / 41
Регистрация: 26.12.2012
Сообщений: 724
14.02.2014, 23:41 #3
C++
1
2
3
int i, maxindex, minindex;
double *a;
a=new double[25];
1
SKED
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 14
14.02.2014, 23:53  [ТС] #4
Цитата Сообщение от S_el Посмотреть сообщение
В чем подвох?и так понятно,что минимальный первый,а максимальный последний.


Вместо int для массива double сделайте.


Нулем инициализируйте.
Учусь. Поэтому последовательность с известными результатами. Теперь надо, чтобы программа эти результаты верно выводила.

Получилось.

Не получилось. http://4put.ru/pictures/max/854/2625707.jpg
0
Ev_Hyper
Заблокирован
15.02.2014, 00:00 #5
SKED, вместо 0 - 1 поставьте. Вы же начинаете считать с 1.

Добавлено через 1 минуту
C++
1
 a=new int[25];
если вы начинаете считать с 1, то и размерность задавайте на 1 больше - 26.
1
S_el
2113 / 1633 / 308
Регистрация: 15.12.2013
Сообщений: 6,396
15.02.2014, 00:00 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Сравните:

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
#include "stdafx.h"
#include <iostream>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
int i, maxindex, minindex;
double *a=new double[25];
double min=100,max=0;//для примера
for (i=0;i<=25;i++)
 a[i]=i*i+0.4;
 
for (i=0; i<=25; i++)
{
   if (a[i]>max)
      { 
       max=a[i];
       maxindex=i;
      } 
   if(a[i]<min)
     {
       min=a[i];
       minindex=i;
     } 
}
 
printf("max=%f\n",max);
printf("min=%f\n",min);
printf("maxindex=%i\n",maxindex);
printf("minindex=%i\n",minindex);
system("pause");
}
1
SKED
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 14
15.02.2014, 00:00  [ТС] #7
...
0
Ev_Hyper
Заблокирован
15.02.2014, 00:05 #8
S_el, та же ошибка:

C++
1
2
3
double *a=new double[25];
...
for (i=0;i<=25;i++)
1
SKED
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 14
15.02.2014, 00:06  [ТС] #9
Цитата Сообщение от S_el Посмотреть сообщение
Сравните:

Кликните здесь для просмотра всего текста
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
#include "stdafx.h"
#include <iostream>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
int i, maxindex, minindex;
double *a=new double[25];
double min=100,max=0;//для примера
for (i=0;i<=25;i++)
 a[i]=i*i+0.4;
 
for (i=0; i<=25; i++)
{
   if (a[i]>max)
      { 
       max=a[i];
       maxindex=i;
      } 
   if(a[i]<min)
     {
       min=a[i];
       minindex=i;
     } 
}
 
printf("max=%f\n",max);
printf("min=%f\n",min);
printf("maxindex=%i\n",maxindex);
printf("minindex=%i\n",minindex);
system("pause");
}
Я не знаю, приянто ли писать в комментариях "спасибо", но спасибо, всё получилось.
0
S_el
2113 / 1633 / 308
Регистрация: 15.12.2013
Сообщений: 6,396
15.02.2014, 00:10 #10
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
S_el, та же ошибка:
Верно,недосмотрел.
0
DrOffset
7377 / 4454 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
15.02.2014, 00:12 #11
Цитата Сообщение от SKED Посмотреть сообщение
Я не знаю, приянто ли писать в комментариях "спасибо", но спасибо, всё получилось.
Как вам уже сказали, в процитированном примере все еще осталась ошибка. Элементов массива у вас 25, а в цикле перебирается 26. 26й элемент из "чужой" памяти, записывать туда нельзя. Поэтому надо либо в цикле поставить i < 25, либо выделять 26, вместо 25. Ну и delete [] a; в конце не забыть написать.
1
15.02.2014, 00:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2014, 00:12
Привет! Вот еще темы с ответами:

Определить номер минимального элемента массива - C++
Доброй ночи, это снова я. помогите решить задачу. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1)номер...

Найти номер минимального элемента массива - C++
Рябят, помогите пожалуйста...просто очень срочно нужно.... С одномерным динамическим массивом, состоящим из n вещественных...

Найти номер минимального элемента массива - C++
Одномерные Массивы Вариант 8 в одномерном массиве, состоящем из п вещественных элементов, вычислить: 1) номер минимального элемента...

Найти номер строки и столбца двумерного массива для минимального элемента этого массива - C++
Visual C ++ 2005 Express Edition помогите пожалуйста


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

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

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