21 / 21 / 19
Регистрация: 10.09.2013
Сообщений: 285
1

Ввод одномерного массива из N целых чисел

31.10.2014, 23:32. Показов 6299. Ответов 5
Метки нет (Все метки)

Задание:
Задав одномерный массив целочисленных данных А в одном из заданных форматов, реализовать обработку массива, как указано в варианте. Длина статического массива N<=20. Значение N ввести с клавиатуры с проверкой на допустимые значения. Предусмотреть возможность ввода значений элементов массива пользователем и с помощью датчика случайных чисел.
Моя реализация:
C++
1
2
3
4
5
6
7
8
9
10
long n1;
    m1:cout<<"Vvedite n:"<<endl;
    cin>>n1;
    if(n1<1 || n1>20)
    {
        cout<<"N za predelami 0<n<21"<<endl;
        goto m1;
    }
    long const n = n1;
    long mas[20];
В чём ошибка: ошибка в том, что кол-во элементов должно задаваться константной переменной, а не получается...
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2014, 23:32
Ответы с готовыми решениями:

Разработать функцию сортировки одномерного массива 10 целых чисел
Разработать функцию сортировки одномерного массива 10 целых чисел,случайно заполненного в...

Заменить отрицательные элементы одномерного массива целых чисел на нули
Заменить отрицательные элементы одномерного массива целых чисел на нули, а затем подсчитать...

Заменить отрицательные элементы одномерного массива целых чисел на нули
Заменить отрицательные элементы одномерного массива целых чисел на нули, а затем подсчитать...

Сортировка одномерного массива целых чисел по возрастанию методом быстрой сортировки
Написать программу для сортировки одномерного массива целых чисел по возрастанию методом быстрой...

5
73 / 59 / 41
Регистрация: 25.06.2014
Сообщений: 360
31.10.2014, 23:41 2
C++
1
goto m1;
за такое ...
а по делу динамический массив создай, или используй вектор
0
21 / 21 / 19
Регистрация: 10.09.2013
Сообщений: 285
31.10.2014, 23:49  [ТС] 3
Цитата Сообщение от Nevermind_qqq Посмотреть сообщение
за такое ...
Что за такое?
Цитата Сообщение от Nevermind_qqq Посмотреть сообщение
или используй вектор
одномерный статический массив и есть вектор.
динамический использовать нельзя, в этом то и проблема...
0
Эксперт PHP
3092 / 2580 / 1217
Регистрация: 14.05.2014
Сообщений: 7,216
Записей в блоге: 1
01.11.2014, 00:11 4
Цитата Сообщение от Thypson Посмотреть сообщение
одномерный статический массив и есть вектор
В C++ вектор не есть статический одномерный массив.
Цитата Сообщение от Thypson Посмотреть сообщение
Что за такое?
Использование оператора goto не приветствуется. Его лучше заменить циклом.
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
38
39
40
41
42
43
44
#include <iostream>
#include <cstdlib>
#include <ctime>
 
int main()
{
    const int N = 20;
    int n, mas[N];
    while (true)
    {
        std::cout << "Vvedite n: ";
        (std::cin >> n).get();
        if (n > 0 && n <= N) break;
        std::cout << "Nepravilnoye znacheniye!" << std::endl
                  << "Dlya prodolzheniya nazhmite [Enter]" << std::endl;
        std::cin.get();
        system("cls");
    }
    int choise;
    do
    {
        std::cout << "1 - zapolneniye massiva vruchnuyu" << std::endl
                  << "2 - zapolneniye sluchaynymi chislami" << std::endl;
        std::cin >> choise;
        switch (choise)
        {
            case 1:
                for (int i = 0; i < n; ++i)
                    std::cin >> mas[i];
                break;
            case 2:
                srand((unsigned)time(NULL));
                for (int i = 0; i < n; ++i)
                    mas[i] = rand() % 100;
                break;
            default: std::cout << "Nepravilnoye znacheniye!" << std::endl;
        }
    } while ((choise < 1 || choise > 2));
    std::cout << "Massiv: ";
    for (int i = 0; i < n; ++i)
        std::cout << mas[i] << ' ';
    std::cout << std::endl;
    return 0;
}
0
21 / 21 / 19
Регистрация: 10.09.2013
Сообщений: 285
01.11.2014, 00:24  [ТС] 5
Извините, да, действительно я не до конца понял, и реализуется так, вектором:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
long n;
    long mas[20];
    double f;
    m1:cout<<"Vvedite n:"<<endl;
    cin>>n;
    if(n<1 || n>20)
    {
        cout<<"N za predelami 0<n<21"<<endl;
        goto m1;
    }
    for (int i=0;i<n;i++)
    {
        cout<<"Input "<<i<<" element: ";
        cin>>mas[i];
    }
Добавлено через 1 минуту
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Использование оператора goto не приветствуется. Его лучше заменить циклом.
Причину можно, в чём его недостаток?)
0
Эксперт PHP
3092 / 2580 / 1217
Регистрация: 14.05.2014
Сообщений: 7,216
Записей в блоге: 1
01.11.2014, 00:30 6
Цитата Сообщение от Thypson Посмотреть сообщение
в чём его недостаток?)
Это прошлый век + ухудшается читабельность кода +при большом количестве меток и операторов goto легко запутаться в своем же коде. И перестаньте массив называть вектором. Вектор в С++ - отдельный класс, если интересно, почитайте про него (std::vector).
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.11.2014, 00:30
Помогаю со студенческими работами здесь

Ввод с клавиатуры массива из 10 целых чисел
Написать программу, которая вводит с клавиатуры массив из 10 целых чисел, находит среди элементов...

Для одномерного массива, состоящих из n целых чисел: Найти номер максимального элемента;
Для одномерного массива, состоящих из n целых чисел: Найти номер максимального элемента;

Ввод и вывод массива целых чисел Вычислить сумму модулей элементов массива,располроженных после первого отрицательного
Очень срочно,помогите пожалуйста,чем быстрее - тем лучше=) Ввод и вывод массива целых...

Ввод и вывод массива целых чисел Вычислить сумму модулей элементов массива,располроженных после первого отрицательного
Очень срочно,помогите пожалуйста,чем быстрее - тем лучше=) Ввод и вывод массива целых...

После ввода с клавиатуры произвольного одномерного массива целых чисел вывести на экран произведение отрицательных чисел
После ввод с клавиатуры произвольного одномерного массива целых чисел вывести на экран произведение...

Составить функцию, которая для одномерного массива целых чисел проверяет, является ли заданная последовательность чисел симметричной.
Составить функцию, которая для одномерного массива целых чисел проверяет, является ли заданная...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru