Не работает scanf и getchar после циклов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день, проблема возникла следующая - функции гетчар и сканэф не вызываются после циклов for. Если поставить эти функции до циклов, то все нормально, происходит ожидание ввода, ввод, дальнейшее выполнения программы. А вот если эти функции стоят после цикла или внутри него, то они просто напросто не работают, не происходит задержка для ввода. В чем проблема? заранее спасибо.
#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();
}
вот сам код. не работает гетчар в цикле, который начинается с for(k=2;f!=1;k++), аналогично в этом же месте со сканомэф если на на него заменить гетчар причем в самом первом вложенном цикле все прекрасно работает.

Решение задачи: «Не работает scanf и getchar после циклов»

textual
Листинг программы
scanf("%d%*c", &bet[p][0]);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы