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

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

Войти
Регистрация
Восстановить пароль
 
I love myguitar
4 / 4 / 1
Регистрация: 23.10.2012
Сообщений: 233
#1

go to mark что она делает - C++

12.11.2013, 11:53. Просмотров 434. Ответов 6
Метки нет (Все метки)

go to mark что она делает , это типа аналог continue?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
12.11.2013, 12:18     go to mark что она делает #2
Цитата Сообщение от I love myguitar Посмотреть сообщение
go to mark
есть
C++
1
goto
, но нет
C++
1
go to
. Если не знаете зачем он, то лучше и не надо. В рукописных программах использование goto признано в большинстве случаев моветоном.
SatanaXIII
Супер-модератор
Эксперт С++
5589 / 2623 / 239
Регистрация: 01.11.2011
Сообщений: 6,448
Завершенные тесты: 1
12.11.2013, 12:20     go to mark что она делает #3
Цитата Сообщение от I love myguitar Посмотреть сообщение
go to mark что она делает , это типа аналог continue?
А вообще было бы неплохо увидеть ее в контексте.
I love myguitar
4 / 4 / 1
Регистрация: 23.10.2012
Сообщений: 233
12.11.2013, 18:00  [ТС]     go to mark что она делает #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
38
39
40
41
42
43
44
45
46
47
48
void main(){
    int first[7] = {0, 2, 6, 10, 3, 2, 5};
    int second[5] = {5, 4, 3, 8, 9};
    int i = 0;
    int j = 0;
    for (i = 0; i < 7; i++){
        printf("%d\t", first[i]); //выводим первый массив с пробелами
    }
    printf("\nsecond:\n");
    for (i = 0; i < 5; i++){
        printf("%d\t", second[i]);//выводим второй массив
    }
    int n = 12;
    int met = 0, met1=0; //объявляем индекс результирующего массива
    int *result=new int[n]; //объявляем результирующий массив
    int *result1=new int[n];
    printf("\nresult:\n");
   for(i = 0; i < 7; i++){
        for(j = 0; j < 5; j++){
            if(first[i]== second[j])
                goto mark;
        }
        result[met] = first[i];
        ++met;
        mark:;
    }
    /*for(i = 0; i < 5; i++){
        for(j = 0; j < 7; j++){
            if(second[i]== first[j])
                goto mark1;
        }
        result[met] = second[i];
        ++met;
        mark1:;
    }*/
    for(i = 0; i < met; i++){
        for(j = 0; j < met1; j++){
            if(result[i]== result1[j])
                goto mark2;
        }
        result1[met1] = result[i];
        ++met1;
        mark2:;
    }
    for(int i=0; i<met1; i++)
        printf("%d\t", result1[i]);
        
        }
Добавлено через 3 минуты
Я тоже слыхал что goto луче не использовать, но вот этот вариант отлично работает, пытаюсь сделать то же по простому но пока не придумал как
SatanaXIII
Супер-модератор
Эксперт С++
5589 / 2623 / 239
Регистрация: 01.11.2011
Сообщений: 6,448
Завершенные тесты: 1
12.11.2013, 18:05     go to mark что она делает #5
I love myguitar, вот, о чем вам сказал Tulosba - если выполняется условие в двадцатой строке, то в двадцать первой она прыгает в двадцать пятую.
Можно переделать вот так:
C++
18
19
20
21
22
23
24
25
26
27
28
   for(i = 0; i < 7; i++){
        for(j = 0; j < 5; j++){
            if(first[i]== second[j])
                break;
        }
        if(j==5)
          {
          result[met] = first[i];
          ++met;
          }
    }
Добавлено через 45 секунд
Цитата Сообщение от I love myguitar Посмотреть сообщение
Я тоже слыхал что goto луче не использовать
Его не то, что лучше не использовать, а лучше использовать когда нужно.
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
12.11.2013, 18:10     go to mark что она делает #6
Цитата Сообщение от SatanaXIII Посмотреть сообщение
а лучше использовать когда нужно
Обычно никогда и не нужно
I love myguitar, код трешовый. В данном случае
C++
1
goto mark;
следует заменить на
C++
1
break;
Цитата Сообщение от I love myguitar Посмотреть сообщение
int *result=new int[n];
Зачем? Если n по сути константа.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2013, 18:26     go to mark что она делает
Еще ссылки по теме:

C++ Что делает operator++
C++ Что делает printf?
Что делает fseek? C++
C++ Объяснить, что делает операция *& и чем она отличается от простого указателя?
C++ Что делает функция?

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

Или воспользуйтесь поиском по форуму:
I love myguitar
4 / 4 / 1
Регистрация: 23.10.2012
Сообщений: 233
12.11.2013, 18:26  [ТС]     go to mark что она делает #7
SatanaXIII, А void тоже луче никогда не использовать
Yandex
Объявления
12.11.2013, 18:26     go to mark что она делает
Ответ Создать тему
Опции темы

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