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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2018, 02:34   #1
Roza1
 
Регистрация: 07.02.2018
Сообщений: 7
Печаль массив

Здравствуйте. Хочу записаться на курсы, а там вступительное задание, то есть полных 0 не берут :-) Помогите, пожалуйста, преодолеть барьер! Начало есть...
Реализовать задание с использованием консоли:
- С клавиатуры вводится натуральное число n - количество элементов массива
-ввести n действительных чисел - элементы
- вывести на экран элементы
-отсортировать в порядке возрастания и вывести
-дополнительно предусмотреть обработку ошибок.

А вот мои усилия:

Код:
#include <iostream>
using namespace std;
void main()
{
	int n;
	cout<<"Enter number of elements:\n";
	cin>>n;
	
const int size=n;
int ar[size];
но после последней строчки выдает ошибку, а я хотела дальше так написать:

Код:
if (n>0)
	{
		
		for(int i=0;i<size;i++)
		{
			cout<<"Enter elements:\n";
			cin>>ar[i];
		cout<<", ";
		}
	}
	else
	{
	cout<<"Your number isn't correct";
	}

		for(int i=0;i<size;i++)
		{cout<<a[i]<<", ";
		}
	cout<<"\n";

int min=ar[0];
for(int i=0;i<size;i++)
		{
			if(min>a[i])
			min=a[i]
		}
		cout<<"\n min ";
только это первое будет миним. значение. дальше не знаю. Я читала надо как-то пузырьком, пока ищу. А надо на послезавтра. Если кто-то поможет, буду очень благодарна.
Roza1 вне форума Ответить с цитированием
Старый 07.02.2018, 09:32   #2
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

Цитата:
но после последней строчки выдает ошибку
используй динамический массив.
Код:
int size; // Переменная n, теперь не нужна
cin >> size;
int *arr = new int[size];
как то так.

И еще:
Цитата:
-ввести n действительных чисел - элементы
а у вас массив целых чисел int. используйте float или double.
Код:
float *arr = new float[size];
Дальше код не анализировал.

И не забудте в конце освободить память, с помощью delete

Последний раз редактировалось SAMOUCHKA; 07.02.2018 в 09:34.
SAMOUCHKA вне форума Ответить с цитированием
Старый 07.02.2018, 14:34   #3
Roza1
 
Регистрация: 07.02.2018
Сообщений: 7
По умолчанию

Спасибо большое, буду пробовать.
Roza1 вне форума Ответить с цитированием
Старый 07.02.2018, 14:42   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

А какой в этом смысл? Думаете там вас с 0 начнут обучать, учитывая что есть вступительная задача? Или озарение наступит?
p51x на форуме Ответить с цитированием
Старый 08.02.2018, 08:27   #5
Roza1
 
Регистрация: 07.02.2018
Сообщений: 7
По умолчанию

Думаю что хуже не будет, тем более что обучение бесплатное.
Roza1 вне форума Ответить с цитированием
Старый 09.02.2018, 02:26   #6
Roza1
 
Регистрация: 07.02.2018
Сообщений: 7
По умолчанию

вроде так работает
Код:
#include <iostream>
using namespace std;
void main()
{
	
	int n;
	double m;
	cout<<"Enter number of elements:\n";
	cin>>n;
	 
	if (n>0)
	{
		double *ar = new double[n];
		cout<<"Enter elements:\n";
		for (int count = 0; count < n; count++)
			cin >> ar[count];
		
		
		for (int i = 0; i < n; i++){
		 for (int j = i + 1; j < n; j++){
            if (ar[j] < ar[i])
            {
                m = ar[i];
                ar[i] = ar[j];
                ar[j] = m;
            }
		 }
		 }
		for (int count = 0; count < n; count++)
        cout<< ar[count] << " ";
 
		delete[] ar; 
	}
	else
	{
cout<<"ERROR - Your number isn't correct";
	}
system ("pause");
cout<<"\n";

}
Только если ошибки, напр. символьное значение, пробовала через swich, не получилось.

Последний раз редактировалось Roza1; 09.02.2018 в 03:10.
Roza1 вне форума Ответить с цитированием
Старый 09.02.2018, 03:11   #7
Roza1
 
Регистрация: 07.02.2018
Сообщений: 7
По умолчанию

Всем спасибо😊
Roza1 вне форума Ответить с цитированием
Старый 09.02.2018, 16:03   #8
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

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

Последний раз редактировалось alexzk; 09.02.2018 в 16:06.
alexzk вне форума Ответить с цитированием
Старый 09.02.2018, 16:14   #9
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
привыкайте писать ++сount вместо count++, там где это принципиально не важно. 1 конструкция работает быстрее в целом.
Забавный миф. Смею Вас уверить, что в данном случае компилятор сгенрирует совершенно одинаковый код. Думаю, даже для процессоров от приставок..

Не спорю, есть случаи, когда таки лучше писать ++сount. Но бездумно требовать этого в любой ситуации - всё та же магия, которой полно современное обучение программированию..
Black Fregat вне форума Ответить с цитированием
Старый 09.02.2018, 17:01   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

В данном - да. И во многих других тоже, если компилятор свежий. Но вот в дебаг версии для итераторов уже ощутимо... из-за доп. проверок.
p51x на форуме Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив A размером 3*3. Составить программу, записывающие положительные элементы этого массива A в одномерный массив B, а отрицательные - в одномерный массив C SkaNi Паскаль, Turbo Pascal, PascalABC.NET 1 02.06.2017 08:07
Программирование в VBA: двумерный массив M на N, нужно создать новый одномерный массив TheAnnihilyator Помощь студентам 1 04.06.2014 09:16
Дан одномерный массив, сформировать новый массив по заданному правилу {Delphi} Nickolai47 Помощь студентам 5 16.12.2012 14:51
С# задан массив 5х5. сформировать массивы А и В. в массив А поместить элементы с четными индексами, в массив В с нечетны Koksa Помощь студентам 0 10.10.2011 11:26
Из массив А получить массив В, удвоив все нечётные элементы удвоены ( на Pascal) KARTER Помощь студентам 1 18.06.2011 19:58