Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2017, 11:26   #1
LenZab
Пользователь
 
Регистрация: 09.03.2011
Сообщений: 16
По умолчанию [C++] Помогите разобраться: отсортировать массив и найти в нём заданное значение

Здравствуйте! Только учусь писать на с++. Есть вопрос. Не могу понять в чем ошибка. Задача в следующем: Есть Массив, его нужно отсортировать по убыванию. С этим справляюсь и вывожу новый получившийся массив. Далее нужно найти в этом массиве число, которое не превосходит введенное и вывести позицию из массива....
Код:
#include <iostream>
#include <vector>
#include <iterator>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main() {
	int size,rost,temp,k;
    int mest;
	int arr[size];
	cout<<"kolvo uchenikov=";
	cin>>size;
	
	cout<<"rost Pety=";
	cin>>rost;
	cout<<"massiv=";

	for (int i=0; i<size; i++)
	{
		cin>>arr[i];
	}
     for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - i - 1; j++) {
            if (arr[j] < arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    for (int i = 0; i < size; i++) {
        cout << "a["<<i<<"]="<<arr[i] <<" "<<endl;
    }
    
  // k=0;
  //  mest=0;
 //  while ((rost<arr[k]) && (k<size))
 //   {
  //  	mest=k;
  //  	k++;
//	}
 //    cout<<"mesto="<<mest;
    cout << endl;
    delete [] arr; 
    

	return 0;
}
вот такой код. После того как пытаюсь ввести в программу то что закоментированно, выдается ошибка и приложение закрывается. Что делаю не так????

______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 27.11.2017 в 11:31.
LenZab вне форума Ответить с цитированием
Старый 27.11.2017, 11:31   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Условия в цикле местами поменять надо.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.11.2017, 11:36   #3
LenZab
Пользователь
 
Регистрация: 09.03.2011
Сообщений: 16
По умолчанию

while ((k<size)&&(rost<arr[k])) так?
LenZab вне форума Ответить с цитированием
Старый 27.11.2017, 11:38   #4
LenZab
Пользователь
 
Регистрация: 09.03.2011
Сообщений: 16
По умолчанию

исправила, условие...все равно ошибка(
Изображения
Тип файла: jpg 1.jpg (94.1 Кб, 111 просмотров)
LenZab вне форума Ответить с цитированием
Старый 27.11.2017, 11:41   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Условия в цикле местами поменять надо.
угу. это так.


Цитата:
Сообщение от LenZab Посмотреть сообщение
Код:
int arr[size];
	cout<<"kolvo uchenikov=";
	cin>>size;
это неверно. нужно сначала ввести size, а потом уже его использовать.
(нужно задание массива переставить после ввода size).
странно, что компилятор не выдал предупреждения/ошибки при обращении к неиницилизированной переменной!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.11.2017, 11:51   #6
LenZab
Пользователь
 
Регистрация: 09.03.2011
Сообщений: 16
По умолчанию

Спасибо большое, все получилось)
LenZab вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив из 10 литер. Найти в нём и вывести восьмеричные цифры MrDeura Помощь студентам 11 26.05.2015 21:09
Создать массив. Получить новый массив как произведение каждого элемента на заданное число. Найти максимальное (на Liberty Basic) MickeyAttac Помощь студентам 2 02.12.2014 22:55
Дан массив строк текста, строка символов разделителей. Сформировать текст из строк, содержащих заданное слово. Отсортировать дестронг Помощь студентам 1 16.05.2014 08:48
Паскаль ABC - в заданном вещественном массиве найти минимальное значение и отсортировать элементы левее него kinwood Помощь студентам 8 17.04.2013 07:27
Сформировать двумерный массив и заполнить его случайными числами и отсортировать столбцы в нём методом "пузырька" ( на Pascal ) duxa27 Помощь студентам 2 26.12.2012 12:25