Не работает scanf и getchar после циклов - C (СИ)
Формулировка задачи:
Добрый день, проблема возникла следующая - функции гетчар и сканэф не вызываются после циклов for.
Если поставить эти функции до циклов, то все нормально, происходит ожидание ввода, ввод, дальнейшее выполнения программы. А вот если эти функции стоят после цикла или внутри него, то они просто напросто не работают, не происходит задержка для ввода.
В чем проблема?
заранее спасибо.
вот сам код. не работает гетчар в цикле, который начинается с for(k=2;f!=1;k++), аналогично в этом же месте со сканомэф если на на него заменить гетчар
причем в самом первом вложенном цикле все прекрасно работает.
Листинг программы
- #include<stdlib.h>
- #include<time.h>
- #include<conio.h>
- #include<stdio.h>
- #define M 54
- #define N 4*M
- void Init(int *a, int n)
- {
- int i, j, b[M], count[M], len = M;
- for(i = 0; i < M; i++)
- {
- b[i] = i;
- count[i] = N / M;
- }
- for(i = 0; i < n; i++)
- {
- j = rand() % len;
- a[i] = b[j];
- --count[j];
- if (!count[j])
- {
- b[j] = b[len - 1];
- count[j] = count[len - 1];
- --len;
- }
- }
- }
- int main()
- {
- int deck[N], bet[3][20], chi[4][20], pos=0, i=0, p=0, m=0, k=0,f=0,c=0;
- srand(time(NULL));
- Init(deck, N);
- while(pos!=311)
- {
- for(p=0; p<3;p++)
- {
- scanf("%d", &bet[p][0]);
- }
- for(m=0;m<2;m++)
- {
- if(m==1)
- {
- chi[3][0]=deck[pos];
- pos++;
- }
- for(i=0;i<3;i++)
- {
- chi[i][m]=deck[pos];
- pos++;
- }
- }
- for(k=2;f!=1;k++)
- {
- c=getchar();
- if(c=='y')
- {
- chi[0][k]=pos;
- pos++;
- }
- else
- {
- f=1;
- }
- }
- }
- getch();
- }
Решение задачи: «Не работает scanf и getchar после циклов»
textual
Листинг программы
- scanf("%d%*c", &bet[p][0]);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д