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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2018, 17:43   #1
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию что значат эти строки? - C++

что значат эти строки?
я так понимаю это значит что выделяется память на 20 символов и если будет больше 20 символов то будет ошибка?
Код:
const int SIZE = 20;
char result[SIZE];
можно записать так?
Код:
char result[20];
вопрос про этой строке в задаче нужно проверить 10 элемент 20 элемент и 30 элемент я правильно беру 9 ведь нумерация в массиве идёт с 0 а тут вообще есть массив и раз нужно проверить 30 элемент то нужно подавать минимум 30 букв на вход?

Код:
if (result[9] == 'A' || result[19] == 'A' || result[29] == 'A')


Код:
#include <iostream>
#include <fstream>
using namespace std;
 
 
 
int main()
{
    ifstream in("input.txt");
    ofstream out("output.txt");
    int s = 1, number = 0;
    char a;
    char result[20];
 
 
    while (in >> a)
    {
        switch (s)
        {
        case 1:
        {
            switch (a)
            {
            case 'a':
            {
                result[number] = 'A';
                s = 2;
                break;
            }
            case 'b':
            {
                result[number] = 'C';
                s = 2;
 
                break;
            }
            }
            break;
        }
        case 2:
        {
            switch (a)
            {
            case 'a':
            {
                result[number] = 'A';
                s = 3;
                break;
            }
            case 'b':
            {
                result[number] = 'E';
                s = 3;
                break;
            }
            }
            break;
        }
        case 3:
        {
            switch (a)
            {
            case 'a':
            {
                result[number] = 'B';
                s = 4;
                break;
            }
            case 'b':
            {
                result[number] = 'D';
                s = 1;
                break;
            }
            }
            break;
        }
 
        case 4:
        {
            switch (a)
            {
            case 'a':
            {
                result[number] = 'C';
                s = 4;
                break;
            }
            case 'b':
            {
                result[number] = 'E';
                s = 3;
                break;
            }
            }
            break;
        }
        break;
        }
        number++;
    }
    for (int i = 0; i < number; i++)
        cout << result[i];
    cout << endl;
    if (result[9] == 'A' || result[19] == 'A' || result[29] == 'A')
        out << "YES"; else cout << "NO";
    return 0;
}
Александр121 вне форума Ответить с цитированием
Старый 10.03.2018, 18:08   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Александр121 Посмотреть сообщение
если будет больше 20 символов то будет ошибка
Будет где? При работе с массивом?
Да, скорее всего будет. Или не будет если не отладочная сборка и не повезет
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.03.2018, 18:55   #3
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

вот второе задание,в задание сказано что нужно проверит 10 элемент а в коде проверсяеться 9 почему?
Изображения
Тип файла: png форум.png (21.6 Кб, 125 просмотров)
Александр121 вне форума Ответить с цитированием
Старый 10.03.2018, 19:08   #4
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Потому что нумерация начинается с 0.

0, 1, 2, ..., 9

Тут 10 элементов.
В обычном счёте считают с 1.
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 10.03.2018, 19:13   #5
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

нумерация тут в массиве верно?
Александр121 вне форума Ответить с цитированием
Старый 10.03.2018, 19:36   #6
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

как правильно писать?
Код:
 char result[20];
или так
Код:
const int SIZE = 20;
 char result[SIZE];
Александр121 вне форума Ответить с цитированием
Старый 10.03.2018, 23:08   #7
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

Можете обьяснить такой момент
result[number] = 'A'; вот тут number приравнивается букве A.


В конце цикла number++; увеличивается на еденичку раз number приравняли к A получается A увеличивается на один?
Александр121 вне форума Ответить с цитированием
Старый 10.03.2018, 23:55   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Цитата:
Сообщение от Александр121 Посмотреть сообщение
как правильно писать?
оба варианта сработают, но стилигайды советуют использовать второй вариант - нет магических чисел и если надо изменить размер массив, то делается это в оддном месте, а не везде где используется

Цитата:
Сообщение от Александр121 Посмотреть сообщение
result[number] = 'A'; вот тут number приравнивается букве A.
нет. вы принципиально игнорируете то, что намбер стоит в скобках и что до скобок?

Цитата:
Сообщение от Александр121 Посмотреть сообщение
увеличивается на еденичку раз number приравняли к A получается A увеличивается на один?
нет. даже если б действительно приравнивали. намбер не ссылка же. да и как вы себе представляете 'A' увеличить на единицу? это ж не переменная.
p51x вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что делают вот эти две строки? Александр121 Помощь студентам 5 05.12.2017 08:45
Что значат звуковые сигналы? Rodik22 Компьютерное железо 2 30.10.2011 06:37
что значат такие вары и как их исправлять? pufystyj PHP 4 19.02.2011 22:35
что значат эти операторы и типы? Egorka47 Общие вопросы Delphi 6 26.06.2010 00:31
Что означают эти строки? DriverSTi Помощь студентам 15 09.01.2010 13:36