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

Напишите программу, проверяя корректность ввода размера массива - C++

Восстановить пароль Регистрация
 
tAruuuch
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 144
13.03.2013, 14:21     Напишите программу, проверяя корректность ввода размера массива #1
Напишите программу, проверяя корректность ввода размера массива. Проверьте работу программы на контрольном примере. Массив содержит н чисел. Определить количество отрицательных чисел массива.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2013, 14:21     Напишите программу, проверяя корректность ввода размера массива
Посмотрите здесь:

C++ Проверить корректность ввода
C++ Корректность ввода размера массива
C++ Проверить корректность ввода элементов матрицы
Программа проверяет корректность ввода данных C++
C++ Контроль ввода размера массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
13.03.2013, 14:32     Напишите программу, проверяя корректность ввода размера массива #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
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <ctime>
 
bool inputCheck (std::string );
 
int main ()
{
    std::string strArraySize;
    do {
        std::cout << "Enter the size of array: ";
        std::cin >> strArraySize;
    } while (inputCheck(strArraySize));
    int arraySize = atoi(strArraySize.c_str());
    system("cls");
 
    int negativeCount = 0;
    int *array = new int [arraySize];
    std::cout << "Array of " << arraySize << " elements: " << std::endl;
    for (int i = 0; i < arraySize; i++) {
        std::cout << (*(array + i) = rand () % 25 - 5) << " ";
        negativeCount += (*(array + i) < 0) ? 1 : 0;
    }
    std::cout << std::endl << "Negative elements: " << negativeCount << std::endl;
 
    delete [] array;
    return 0;
}
 
bool inputCheck(std::string strArraySize)
{
    for (unsigned i = 0; i < strArraySize.length(); i++)
        if (isdigit(strArraySize.at(i)))
            return false;
    return true;
}
tAruuuch
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 144
13.03.2013, 14:45  [ТС]     Напишите программу, проверяя корректность ввода размера массива #3
Ошибка 1 error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" (или приемлемое преобразование отсутствует) c:\users\діма\documents\visual studio 2010\projects\12334\12334\taruuuch.cpp 15 1 12334

как исправить?

Добавлено через 1 минуту
Ev[G]eN, а ты легче написать можешь а то мы кое что не учили еще
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
13.03.2013, 14:46     Напишите программу, проверяя корректность ввода размера массива #4
с проверкой ступил в первый раз
так правильно проверяет:
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
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <ctime>
 
bool inputCheck (std::string );
 
int main ()
{
    std::string strArraySize;
    do {
        std::cout << "Enter the size of array: ";
        std::cin >> strArraySize;
    } while (!inputCheck(strArraySize));
    int arraySize = atoi(strArraySize.c_str());
    system("cls");
 
    int negativeCount = 0;
    int *array = new int [arraySize];
    std::cout << "Array of " << arraySize << " elements: " << std::endl;
    for (int i = 0; i < arraySize; i++) {
        std::cout << (*(array + i) = rand () % 25 - 5) << " ";
        negativeCount += (*(array + i) < 0) ? 1 : 0;
    }
    std::cout << std::endl << "Negative elements: " << negativeCount << std::endl;
 
    delete [] array;
    return 0;
}
 
bool inputCheck(std::string strArraySize)
{
    int count = 0;
    for (int i = 0; i < strArraySize.length(); i++)
        count += (isdigit(strArraySize.at(i))) ? 1 : 0;
    return (count == strArraySize.length());
}
tAruuuch
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 144
13.03.2013, 14:48  [ТС]     Напишите программу, проверяя корректность ввода размера массива #5
Ev[G]eN, оно все ровно ту же ошибку выдает
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
13.03.2013, 14:54     Напишите программу, проверяя корректность ввода размера массива #6
C++
1
std::cin >> strArraySize;
попробуй сменить на
C++
1
std::getline(std::cin, strArraySize);
tAruuuch
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 144
13.03.2013, 15:01  [ТС]     Напишите программу, проверяя корректность ввода размера массива #7
Ev[G]eN, препод говорит не через bool делать а через using namespace std;
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
13.03.2013, 15:04     Напишите программу, проверяя корректность ввода размера массива #8

какая вообще взаимосвязь??

Не по теме:

повезло с преподавателем

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2013, 15:09     Напишите программу, проверяя корректность ввода размера массива
Еще ссылки по теме:

C++ Напишите программу, которая выполняет неполную сортировку массива: ставит в начало массива три самых меньших
C++ Проверка на корректность ввода числа
Напишите программу, читающую строки со стандартного устройства ввода и суммирующую их в одну большую строку C++

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

Или воспользуйтесь поиском по форуму:
tAruuuch
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 144
13.03.2013, 15:09  [ТС]     Напишите программу, проверяя корректность ввода размера массива #9
Ev[G]eN, та это бабка 70 летняя уже надоела(
Yandex
Объявления
13.03.2013, 15:09     Напишите программу, проверяя корректность ввода размера массива
Ответ Создать тему
Опции темы

Текущее время: 14:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru