Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
Symonenko
4 / 4 / 1
Регистрация: 20.11.2017
Сообщений: 32
#1

Цикл выводит ненужную ин-фу - C (СИ)

03.01.2018, 18:59. Просмотров 132. Ответов 5
Метки нет (Все метки)

Вот вся прога, при повторе цикла он выводит то, что я прописал в default в switch. Можно как-то этого избежать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2018, 18:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Цикл выводит ненужную ин-фу (C (СИ)):

Цикл: Написать программу, которая выводит последовательность символов - C (СИ)
Здравствуйте. Я начинающий программист. Не могу решить одну задачку, очень надеюсь, что вы поможете мне в решении. Задачу нужно решить с...

Цикл: Написать программу, которая выводит фигуру в виде пирамиды - C (СИ)
Здравствуйте. Я начинающий программист. Учусь по книге Стивена Прата. Дошел до циклов и не могу решить одну задачку, очень надеюсь, что вы...

Цикл for не выводит желаемого результата - JavaScript
функция (x,n), которая возвращает x в степени n. Иначе говоря, умножает x на себя n раз и возвращает результат. то есть если указано в...

Цикл for. Выводит пустые блоки - PHP
Друзья, помогите с проблемой: Есть постраничный вывод новостей из БД. На одной странице выводит 6 последний записей. Всего записей в...

Цикл не выводит то, что надо - C#
вот код С вводом тоже проблема. Первую переменную ввожу,вторую - пропускает. /* * Created by SharpDevelop. * User: User * Date:...

Цикл с mysql. Выводит только 1 запись - PHP БД
Почему когда я пытаюсь вытянуть уровень, то выводит только 1 запись из mysql? <td style=''><img style='width: 14px;'...

5
devMax
2 / 2 / 0
Регистрация: 24.12.2017
Сообщений: 7
03.01.2018, 22:49 #2
Предоставь весь код.
0
Symonenko
4 / 4 / 1
Регистрация: 20.11.2017
Сообщений: 32
03.01.2018, 23:48  [ТС] #3
Цитата Сообщение от devMax Посмотреть сообщение
Предоставь весь код.
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
#include<stdio.h>
#include<Windows.h>
 
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    system("color F0");
    
    int n=1;
    while(n!=2) {
        
    char a;
    printf("Введите: \n");
    scanf("%c", &a);
    
    switch (a) {
        
        case 'A': 
                  printf(".-");
                  Beep(500, 1000/4);
                  Beep(500, 1000);
        break;
        case 'B': 
                  printf("-...");
                  Beep(500, 1000);
                  Beep(500, 1000/4);
                  Beep(500, 1000/4);
                  Beep(500, 1000/4);
        break;
        case 'C': 
                  printf("-.-.");
                  Beep(500, 1000);
                  Beep(500, 1000/4);
                  Beep(500, 1500);
                  Beep(500, 1000/4);
        break;
        case 'D': 
                  printf("-..");
                  Beep(500, 1000);
                  Beep(500, 1000/4);
                  Beep(500, 1000/4);
        break;
        case 'E': 
                  printf(".");
                  Beep(500, 1000/4);
        break;
        case 'F': 
                  printf("..-.");
                  Beep(500, 1000/4);
                  Beep(500, 1000/4);
                  Beep(500, 1500);
                  Beep(500, 1000/4);
        break;
        case 'G': 
                  printf("--.");
                  Beep(500, 1000);
                  Beep(500, 1000);
                  Beep(500, 1000/4);
        break;
        case 'H': 
                  printf("....");
                  Beep(500, 1000/4);
                  Beep(500, 1000/4);
                  Beep(500, 1000/4);
                  Beep(500, 1000/4);
        break;
        case 'I': 
                  printf("..");
                  Beep(500, 1000/4);
                  Beep(500, 1000/4);
        break;
        case 'J': 
                  printf(".---");
                  Beep(500, 1000/4);
                  Beep(500, 1000);
                  Beep(500, 1000);
                  Beep(500, 1000);
        break;
        case 'K': printf("-.-");
                  Beep(500, 1000);
                  Beep(500, 1000/4);
                  Beep(500, 1500);
        break;
        case 'L': 
                  printf(".-..");
                  Beep(500, 1000/4);
                  Beep(500, 1000);
                  Beep(500, 1000/4);
                  Beep(500, 1000/4);
        break;
        case 'M': 
                  printf("--");
                  Beep(500, 1000);
                  Beep(500, 1000);
        break;
        case 'N': 
                  printf("-.");
                  Beep(500, 1000);
                  Beep(500, 1000/4);
        break;
        case 'O': 
                  printf("---");
                  Beep(500, 1000);
                  Beep(500, 1000);
                  Beep(500, 1000);
        break;
        case 'P': 
                  printf(".--.");
                  Beep(500, 1000/4);
                  Beep(500, 1000);
                  Beep(500, 1000);
                  Beep(500, 1000/4);
        break;
        case 'Q': 
                  printf("--.-");
                  Beep(500, 1000);
                  Beep(500, 1000);
                  Beep(500, 1000/4);
                  Beep(500, 1500);
        break;
        case 'R':
                  printf(".-.");
                  Beep(500, 1000/4);
                  Beep(500, 1000);
                  Beep(500, 1000/4);
        break;
        case 'S': 
                  printf("...");
                  Beep(500, 1000/4);
                  Beep(500, 1000/4);
                  Beep(500, 1000/4);
        break;
        case 'T': 
                  printf("-");
                  Beep(500, 1000);
        break;
        case 'U': 
                  printf("..-");
                  Beep(500, 1000/4);
                  Beep(500, 1000/4);
                  Beep(500, 1500);
        break;
        case 'V': 
                  printf("...-");
                  Beep(500, 1000/4);
                  Beep(500, 1000/4);
                  Beep(500, 1000/4);
                  Beep(500, 2000);
        break;
        case 'W': 
                  printf(".--");
                  Beep(500, 1000/4);
                  Beep(500, 1000);
                  Beep(500, 1000);
        break;
        case 'X': 
                  printf("-..-");
                  Beep(500, 1000);
                  Beep(500, 250);
                  Beep(500, 250);
                  Beep(500, 1000);
                  Beep(500, 1000);
        break;
        case 'Y': 
                  printf("-.--");
                  Beep(500, 1000);
                  Beep(500, 1000/4);
                  Beep(500, 1500);
                  Beep(500, 1500);
        break;
        case 'Z': 
                  printf("--..");
                  Beep(500, 1000);
                  Beep(500, 1000);
                  Beep(500, 1000/4);
                  Beep(500, 1000/4);
        break;
    
        default : 
                  printf("Не знаю такого символа");
        break; 
    }
 
    printf("\n");   
} 
 
    system("PAUSE");
    return 0;
}
0
likehood
offline
888 / 747 / 253
Регистрация: 25.12.2016
Сообщений: 2,474
Завершенные тесты: 3
04.01.2018, 00:27 #4
Symonenko, когда вы нажимаете Enter после ввода нужной буквы, во входной поток так же попадает символ '\n', который тут же считывается на следующей итерации цикла. Чтобы этого не было, его нужно вручную извлечь из потока, вызвав getchar() сразу после scanf.

Добавлено через 1 минуту
C
1
2
scanf("%c", &a);
getchar();
2
spvert
62 / 62 / 18
Регистрация: 25.11.2017
Сообщений: 237
04.01.2018, 03:17 #5
То что вам надо поправить, чтобы заработал ввод (VS2015):
C
1
2
3
4
5
        char a;
        printf("Enter: \n");
        scanf_s("%c", &a, 1);
        getchar();
        printf("Enter is %c (%02X)", a, a);
Охота вам писать здоровый кейс?
Загоните всю кодировку морзянки в массив, далее по введенной букве (а в изначальной программе, как я понимаю, еще и цифре) находите свою строку морзянки и отбипиваете ее.

Кликните здесь для просмотра всего текста
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
49
50
51
52
53
54
55
const struct _TMorse
{
    char key;
    char beeps[8];
} Morze[] = 
{
    { 'A', ".-" },
    { 'B', "-..." },
    { 'C', "-.-." },
    { 'D', "-.." }
};
 
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    system("color F0");
 
    int n = 1;
    while (n != 2) 
    {
 
        char a;
        printf("Enter: \n");
        scanf_s("%c", &a, 1);
        getchar();
        printf("Enter is %c (%02X)\n", a, a);
 
        for (n = 0; n < sizeof(Morze) / sizeof(_TMorse); n++)
        {
            if (Morze[n].key == a)
            {
                char *s = (char *) Morze[n].beeps;
                while (*s)
                {
                    switch (*s)
                    {
                    case '.': { printf("."); Beep(500, 1000 / 4); break; }
                    case '-': { printf("-"); Beep(500, 1000); break; }
                    default: Beep(1000, 2000); break;
                    }
                    s++;
                }
                n = -1; 
                break;
            }
        }
        if (n != -1) printf("Unknown enter");
        printf("\n");
    }
 
    system("PAUSE");
    return 0;
}
1
Symonenko
4 / 4 / 1
Регистрация: 20.11.2017
Сообщений: 32
04.01.2018, 22:40  [ТС] #6
спасибо большое всем!
0
04.01.2018, 22:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2018, 22:40
Привет! Вот еще темы с ответами:

Цикл выводит только одну запись - PHP
почему выводится только 1 запись? вроде бы цикл объявлен правильно &lt;? $us=$bon; $db-&gt;Query(&quot;SELECT * FROM dbcool_users_a...

Цикл не выводит данные в поле со списком - PHP БД
Доброго времени суток! Хочу, чтобы у меня печаталось определённое количество полей со списком, каждое из которых чтобы заполнялось...

Цикл выводит одинаковые значения в массиве - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; double funk(int k); int main() ...

Цикл выводит не все элементы массива - PHP БД
Всем привет! Очень нужна ваша помощь! Код выводит данные не с первого элемента, допустим, в БД четыре записи, а в php выводит только три....


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

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

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