2015-02-11 5 views
-1

Я пытаюсь написать программу, которая вычисляет треугольное число, предоставленное пользователем. Когда я запускаю его, он застревает в цикле for, но все равно распечатает правильный ответ, потому что мой оператор печати находится вне цикла. Любая помощь приветствуется. Мой код выглядит следующим образом:Моя программа C застряла в цикле for

#include <stdio.h> 

int main (void) 
{ 

    //Declare your variables 

    int triangle, triNumber, i; 


    //Assign values for known variables 

    triNumber = 0; 


    //Get the user to input the triangular number that they want 

    printf("Please enter the triangular number you would like: "); 
    scanf("%i\n", &triangle); 


    //Execute for loop that will calculate the triangular number 

    for (i = 1; i <= triangle; i = i + 1) 
    { 
     triNumber = triNumber + 1; 
    } 


    //Display the user's triangular number 

    printf("The triangular number is %i\n", triNumber); 

    return 0; 

} 
+2

Если вы получите, чтобы увидеть результат, ваша программа не застрять в цикле. Что и требовалось доказать – usr2564301

+2

Если он застрял в цикле и печать выходит за пределы цикла, как печатается правильный ответ? – lurker

+2

В C не используются циклы 'i = 1; i <= треугольник, но 'i = 0; i <треугольник ". Форма, начинающаяся с 1, рано или поздно поразит вас. –

ответ

2

Он не застревает в цикле for. Вы должны изменить свое scanf() заявление от этого:

scanf("%i\n", &triangle); 

к этому:

scanf("%i", &triangle); 
+0

Спасибо! Это было правильно –

+0

@ Rizier123: Я уверен, что Ctrl + D, Ctrl + Z - это не способ написать новую строку, это способы прекратить поток. Очень разные. –

Смежные вопросы