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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tAruuuch
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 144
#1

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

13.03.2013, 14:21. Просмотров 450. Ответов 8
Метки нет (Все метки)

Напишите программу, проверяя корректность ввода размера массива. Проверьте работу программы на контрольном примере. Массив содержит н чисел. Определить количество отрицательных чисел массива.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
5096 / 1534 / 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
Эксперт С++
5096 / 1534 / 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
Эксперт С++
5096 / 1534 / 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
Эксперт С++
5096 / 1534 / 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++
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     Напишите программу, проверяя корректность ввода размера массива
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru