Почему эта простая программа на C не показывает никаких выходных данных?

#c #for-loop #while-loop #printf

#c #для цикла #while-цикл #printf

Вопрос:

Я должен подсчитать, сколько раз цикл выполняется для данного ввода, я пытаюсь использовать пользовательское значение для n , чтобы получить формулу, но следующая фиктивная программа не показывает никаких выходных данных и не показывает никаких ошибок. Существуют пользовательские значения, n которые варьируются как 4^k , и я использовал случайное значение 64 , чтобы увидеть, сколько раз выполняется цикл.

Я попытался включить printf() инструкцию в сам цикл while, чтобы посмотреть, входит ли компилятор в этот цикл или нет, но я все еще не получаю никакого результата. Я не много программировал на C, и я запускаю программу в онлайн-компиляторе.

 int main()
{
    int i;
    int j;

    int n=64;
    int count=0;
    
    for(i=1;i<=n;i  ){
        j = 2;
        while(j<=n){
            j = i*i;
            count  =1 ;
            
        }
    }
    
    printf("%d",count);
    
    return 0;
}
  

Комментарии:

1. Возможно, это недостаточно длинная строка для заполнения буфера. Попробуйте добавить новую строку: printf("%dn",count); .

2. Пожалуйста, не смешивайте разные стили скобок.

Ответ №1:

Первый цикл, переходящий в while цикл. Мы назначаем

 j = 2
  

Затем, пока j меньше 64, мы присваиваем

 j = 1 * 1
  

Теперь мы сбрасываем цикл while, но i он не изменился, поэтому мы делаем снова

 j = 1 * 1
  

Итак, это бесконечный цикл while, который никогда не завершается.