Почему после ввода числа, все остальное перестает работать?

Появилась такая проблема, что после ввода числа все что идет после перестает работать. И никаких ошибок. Вот код и на скрине видно где ошибка

#include <stdio.h>
#include <string.h>

const int countWorkers = 1;
const int countProducts = 1;
const int countMagazin = 1;
const int countAllProducts = countProducts*countMagazin;

struct listWorkers{
    char surname[20];
    char name[20];
    char address[20];
    char date[20];
};

struct listProducts{
    int id;
    char name[20];
    int price;
    int count;
};

struct st_products{
    listProducts list[countProducts];
};

struct stMagazin{
    int id;
    char name[20];
    char type[20];
    char address[20];
    st_products products;
    listWorkers workers[countWorkers];
};

void output(struct stMagazin magazin);
void findChar(char [20], char [255]);
void findInt(int,int);
void hr(){
    printf("\n----------------------------------------------------------------------------------------\n");
}

int main()
{
    struct stMagazin magazin[countMagazin];
    for(int j=0;j<countMagazin;j++){

        printf("Products: \n");
        for(int i=0;i<countProducts;i++){
            magazin[j].products.list[i].id = i;
            printf("%d)",i+1);
            printf("name: ");scanf("%s",magazin[j].products.list[i].name);
            printf("price: ");scanf("%d",&magazin[j].products.list[i].price);
            printf("count: ");scanf("%d",&magazin[j].products.list[i].count);
        }


        output(magazin[j]);
    }

    hr();

    printf("Опции: \n");
    printf("1) Поиск по-символьному\n");
    printf("2) Поиск по-числовому\n");
    printf("3) Сортировать элементы структуры в возрастающем порядке\n");
    printf("4) Сортировать элементы структуры в убывающем порядке\n");
    printf("5) Вывести символьные поля в алфавитном порядке\n");
    hr();

    while(true){
        int n;
        scanf("%d",&n);
        switch(n){
            case 1:{
                char symbols[255]; char *str_p;
                printf("Ищем символ(ы): "); scanf("%s",symbols);
                for(int i=0;i<countMagazin;i++){
                  findChar(magazin[i].name,symbols);
                  findChar(magazin[i].type,symbols);
                  findChar(magazin[i].address,symbols);
                  for(int j=0;j<countProducts;j++){
                    findChar(magazin[i].products.list[j].name,symbols);
                  }
                  for(int j=0;j<countWorkers;j++){
                    findChar(magazin[i].workers[j].surname,symbols);
                    findChar(magazin[i].workers[j].name,symbols);
                    findChar(magazin[i].workers[j].address,symbols);
                    findChar(magazin[i].workers[j].date,symbols);
                  }
                }
              break;
            }
            case 2:{
                int k;
                printf("Ввести искомое число: "); 
                scanf("%i",&k);
                printf("Цикл");
                for(int i=0;i<countMagazin;i++){
                    //printf("Hello\n");
                  for(int j=0;j<countProducts;j++){
                      printf("Hello");
                    findInt(magazin[i].products.list[j].price,k);
                    findInt(magazin[i].products.list[j].count,k);
                  }
                }
              break;  
            }
            case 3:{

              break;  
            }
            case 4:{

              break;  
            }
            case 5:{

              break;  
            }
        }   
    }
    return 0;
}


void output(struct stMagazin magazin){
    printf("Products: \n");
    for(int i=0;i<countProducts;i++){
        printf("%d)",i+1);
        printf("Name: %s, ",magazin.products.list[i].name);
        printf("Price: %d, ",magazin.products.list[i].price);
        printf("Count: %d",magazin.products.list[i].count);
        printf("\n");
    }
}
void findChar(char myStr[20], char symbols[255]){
  char *str_p;
  str_p = strstr(myStr,symbols);
  if(str_p != NULL){
    printf("Совпадение найдено, %s\n",myStr);
  }
}
void findInt(int myInt, int k){
  printf("%d, %d",myInt,k);
  int intNumber, edNumber;
  while(myInt!=0){
    intNumber = myInt/10;
    edNumber = myInt%10;
  }
  if(intNumber == k || edNumber == k){
      printf("Совпадение найдено, %d",myInt);
    }

}

Скрин

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Andrej Levkovitch

У вас бесконечный цикл в функции findInt

  while (myInt != 0) {
    intNumber = myInt / 10;
    edNumber = myInt % 10;
  }

PS научитесь пользоваться дебаггером

PSS вывода не происходит из-за буферизации: для моментального вывода допишите \n

→ Ссылка