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

Лабораторная по массивам - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
b0n4b
2 / 2 / 0
Регистрация: 16.11.2011
Сообщений: 100
17.11.2011, 23:41     Лабораторная по массивам #1
Здравствуйте. Нам задали лаб. работу по массивам, даже не знаю как должен выглядеть код программы.. Помогите...
Условие:
Пользователь вводит число с плавающей точкой (меньше 10 элементов)
Вывести на экран номер ошибки.
ошибка №1 - В числе не одна точка
ошибка №2 - В числе присутствуют символы, не являющиеся цифрами.
Например:
Я ввожу 6.454.543? мне должно вывести на экран "ошибка №1" и т.д.
Помогитее =(((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2011, 23:41     Лабораторная по массивам
Посмотрите здесь:

По массивам... C++
Лабораторная по массивам C++
Вопросы по массивам C++
Подскажите по массивам C++
Учебник по массивам C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
R136a1
 Аватар для R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
20.11.2011, 01:32     Лабораторная по массивам #21
Цитата Сообщение от greshnikk Посмотреть сообщение
тогда необходимо использовать конструкцию следующего типа:
Код C++
1
scanf("%c", a[i]);
Может так?
C
1
scanf("%c", &a[i]);
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
greshnikk
 Аватар для greshnikk
30 / 30 / 0
Регистрация: 05.11.2008
Сообщений: 162
20.11.2011, 01:38     Лабораторная по массивам #22
Цитата Сообщение от R136a1 Посмотреть сообщение
Может так?
C
1
scanf("%c", &a[i]);
Конечно, я слегка устал, не сразу заметил ошибку. Я ее исправил при повторном просмотре своего ответа, но видимо Вы начали ответ до того, как я ее исправил.
b0n4b
2 / 2 / 0
Регистрация: 16.11.2011
Сообщений: 100
20.11.2011, 11:39  [ТС]     Лабораторная по массивам #23
Всё равно не получается написать программу. Ведь в условии сказано, что пользователь вводит число с плавающей точкой. Кол-во элементов меньше 10. Т.е. их может быть и 5 и 6.

Добавлено через 14 секунд
Как тогда поступить в этом случае?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.11.2011, 12:46     Лабораторная по массивам #24
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
#include <iostream>
 
const int LENGTH = 10;
 
int main()
{
    char str[LENGTH];
    while(std::cout << "Enter the number:" << std::endl && std::cin >> str)
    {
        bool strHasPoint = false;
        for(int i = 0; str[i] != '\0'; ++i)
        {
            if(str[i] == '.')
            {
                if(strHasPoint)
                {
                    for(int j = 0; j < i; ++j)
                        std::cout << ' ';
                    std::cout << '^' << std::endl
                              << "Error #1: number already has point" << std::endl;
                    break;
                }
                else
                    strHasPoint = true;
            }
            else if((str[i] < '0') || (str[i] > '9'))
            {
                for(int j = 0; j < i; ++j)
                    std::cout << ' ';
                std::cout << '^' << std::endl
                          << "Error #2: incorrect symbol" << std::endl;
                    break;
            }
        }
        std::cout << std::endl;
    }
    return 0;
}
greshnikk
 Аватар для greshnikk
30 / 30 / 0
Регистрация: 05.11.2008
Сообщений: 162
20.11.2011, 18:50     Лабораторная по массивам #25
Цитата Сообщение от b0n4b Посмотреть сообщение
Как тогда поступить в этом случае?
Рассмотрим ситуацию, когда пользователь вводит количество символов, не превышающее возможное количество элементов в массиве. Если, после ввода такого числа, в отладчике посмотреть на массив, можно заметить, что после того, как закончились все введенные символы, идет символ с кодом 0, а затем идут случайные символы. Как Вы думаете, как можно это использовать в Вашей проблеме ?
b0n4b
2 / 2 / 0
Регистрация: 16.11.2011
Сообщений: 100
20.11.2011, 19:54  [ТС]     Лабораторная по массивам #26
Блин... Я запутался и ничего не пойму... Давайте начнём с самого начала, и может быть лучше составить немного другой алгоритм?
Существует ли такой символ, который показывает принадлежность какого-либо символа к совокупности??
К примеру 4 принадлежит [1,2,3,4,5,6,7]
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2011, 20:04     Лабораторная по массивам
Еще ссылки по теме:

C++ Задача по массивам
C++ по массивам
C++ Задачи по массивам

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

Или воспользуйтесь поиском по форуму:
greshnikk
 Аватар для greshnikk
30 / 30 / 0
Регистрация: 05.11.2008
Сообщений: 162
20.11.2011, 20:04     Лабораторная по массивам #27
Цитата Сообщение от b0n4b Посмотреть сообщение
Существует ли такой символ, который показывает принадлежность какого-либо символа к совокупности??
К примеру 4 принадлежит [1,2,3,4,5,6,7]
Один из вариантов, который я предлагаю это проверять код символа. Если Вы посмотрите таблицу ASCII, то увидите, что цифры 1, 2 и т. д. расположены по порядку. Можно этим воспользоваться написав следующее:
Если код символа не меньше чем код символа 1 но не больше чем код символа 0, тогда это цифра. Таким образом мы проверим символ на принадлежность к цифрам.
Yandex
Объявления
20.11.2011, 20:04     Лабораторная по массивам
Ответ Создать тему
Опции темы

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