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

Прерывается выполнение программы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удалите из массива все элементы x такие, что L =<e x =<e R http://www.cyberforum.ru/cpp-beginners/thread1033796.html
Помогите с задачкой Дан одномерный массив, элементы которого - целые числа, и два целых числа L и R. Удалите из массива все элементы x такие, что L =<e x =<e R. Формат входных данных В первой строке входного файла даны три целых числа: N, L и R(-1000 =< L =< R =< 1000), где N - количество элементов в массиве (1 =< N =< 100). В следующей строке находится N чисел, по абсолютному значению не...
C++ Отсортировать элементы массива по возрастанию Задан массив из k чисел. Отсортировать элементы массива по возрастанию. http://www.cyberforum.ru/cpp-beginners/thread1033788.html
C++ Найти столбец массива с наибольшей суммой элементов и записатьегох в виде одномерного массива
1 Для произвольного двумерного массива найти столбец с наибольшей суммой элементов и записать их в виде одномерного массива.
C++ В чём ошибка?
В двумерном массиве удалить все строки, в которых среднее арифметическое элементов является двузначным числом. Выдаёт ошибку 35:22: error: name lookup of 'z' changed for ISO 'for' scoping В чём проблема? И правильно ли я составил программу вообще? #include <iostream> #include <cstdlib> using namespace std; int main(){
C++ сделать задачу в c++ http://www.cyberforum.ru/cpp-beginners/thread1033760.html
Пожалуйста, помогите сделать задачку в с++ =)
 

Показать сообщение отдельно
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 104
09.12.2013, 00:13  [ТС]     Прерывается выполнение программы
Цитата Сообщение от Ryuk Посмотреть сообщение
filimoncc, для начала избавьтесь от выхода за границы массива. В проверке на минимум, у вас стоит условие >=, если будут два одинаковых минимальных элемента в начале и в конце массива, то у вас i, всегда будет равно последнему индексу элемента. В начале программы вы сначала объявляете массив, а затем даете ему размерность 100, хотя потом вводите n как размерность. По последним стандартам С++, можно сначала ввести n, а затем объявить массив
C++
1
float a[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
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
cout<<"Vvedite kol-vo elementov v maccive"<<endl;
 int n;
cin>>n;
 float a[n];//объявляем массив
 
 
 for (int i=0; i<n; i++)
 {cout<<"a["<<i<<"]=";cin>>a[i];}
 int one=0, second;// One=0 если максимальный элемент стоит первым
 float maxim, minim;
 maxim=a[0];
  minim=a[0];
 
 for (int i=1; i<n; i++)
 {
 if (maxim<a[i])
 {maxim=a[i];//нашел максимум
one=i;}
 
if (minim>=a[i])
 {minim=a[i];//нашел минимум
second=i;}
 }
 
if (one<second)//если максимальный элемент первее минимального, то выполняется цикл под условием
 {float s=0;
 for (int j=one+1; j<second; j++)
 {s+=a[j];}//считаем сумму меж макс. и миним.
 cout<<"s="<<s<<endl;}
else
 cout<<"Maksimal'nyj jelement vstrechaetsja pozzhe minimal'nogo"<<endl;
 
 
 
 return 0;}
Добавлено через 4 минуты
Ryuk, помогите в этой теме, а то уже забыли В чём ошибка?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru