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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2016, 18:05   #1
Armar
Новичок
Джуниор
 
Регистрация: 14.05.2016
Сообщений: 3
По умолчанию массивы,что не так?

программе должна быть реализована защита от дурака,тоесть цифр больше 20 или буквы,на такой запрос программа отвечает "неправильный ввод повторите", дальше идет часть с динамическим массивом,проблемаив том,что программа не работает,прошу помощи,в чем ошибка?
Код:
#include "stdafx.h" #include <algorithm> #include <iostream> using namespace std; int main(int argc, char* argv[]) { setlocale(LC_ALL, "Russian"); int n = 0; cout <<"Введи номер страницы (от 1 до 20):"; while (!(cin >> n) || n < 1 || n>20) { cin.clear(); while (cin.get() != '\n'); cout << "Неправильный ввод. Повторите.\n"; cout << "Введи номер страницы\n"; } cout << "Введи размер массива: "; int N; cin >> N; // получение от пользователя размера массива int *p_darr = new int[N]; // Выделение памяти для массива for (int i = 0; i < N; i++) { // Заполнение массива и вывод значений его элементов p_darr[i] = i; cout << "Значение " << i << "-го элемента равно " << p_darr[i] << endl; } delete[] p_darr; // очистка памяти //cin.clear(); while (cin.get() != '\n') ; // Пустой оператор cout << "Введи номер страницы(от 1до 20):"; } cout << endl; system("pause"); // Только для тех, у кого MS Visual Studio return 0; }
Armar вне форума Ответить с цитированием
Старый 22.05.2016, 00:51   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

У меня Visual studio 2013. На диррективу #include "stdafx.h" компилятор начал ругатца, поэтому я её удалил. И ещё была лишняя скобка...


Код:
#include <algorithm>
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
	setlocale(LC_ALL, "Russian");
	int n = 0;
	cout <<"Введи номер страницы (от 1 до 20):";
	while (!(cin >> n) || n < 1 || n>20)
	{
		cin.clear(); while (cin.get() != '\n');
		cout << "\nНеправильный ввод. Повторите.\n";
		cout << "Введи номер страницы (от 1 до 20):";
	}
	cout << "\nВведи размер массива: ";
	int N; cin >> N; // получение от пользователя размера массива
	int *p_darr = new int[N]; // Выделение памяти для массива
	for (int i = 0; i < N; i++)
	{
		// Заполнение массива и вывод значений его элементов
		p_darr[i] = i;
		cout << "Значение " << i << "-го элемента равно " << p_darr[i] << endl;
	}
	delete[] p_darr; // очистка памяти //
	cin.clear();
	while(cin.get() != '\n'); // Пустой оператор

cout << endl;
system("pause"); // Только для тех, у кого MS Visual Studio
return 0;
}

ura_111 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массивы,что не так Armar Помощь студентам 2 14.05.2016 22:59
Как сделать так,что бы при введение,например 0;0 выдавалось сообщение,что точка находится на границе? TEIROP Visual C++ 4 08.11.2015 20:19
написать программу массивы (C++) - Даны два массива, скопировать эти массивы в 3-й результирующий (размером 10 элементов) так, что Саша1990 Помощь студентам 1 02.02.2015 16:03
Функции. Массивы. Делфи7. Что не так? Fatalita Помощь студентам 2 09.05.2012 20:24