如何在执行do while循环结束时获取printf?它只是跳过它

时间:2017-04-29 09:59:42

标签: c cs50

#include <cs50.h>
#include <stdio.h>

int main(void)
{
    int min;

    do
    {
        printf("Minutes: ");
        min = get_int();
    }
    while(min <= 0);
    return 0;


    printf("Bottles: %i\n", min * 12);

}
  

好的,我真的很陌生。代码应该像这样工作:如果用户键入一个负整数,它将继续请求整数,否则它应该在结束时运行printf语句,但这不会发生。有人能帮帮我吗?

3 个答案:

答案 0 :(得分:4)

return 0;功能之后移动printf行,因为return 0;让您的申请完成。 - &GT;所以不会调用printf("Bottles: %i\n", min * 12);

int main(void)
{
    int min;

    do
    {
        printf("Minutes: ");
        min = get_int();
    }
    while(min <= 0);

    printf("Bottles: %i\n", min * 12);

    // Change the position of return
    return 0;

}

答案 1 :(得分:4)

你是C的新人,

return 0;

这意味着在执行程序之后它将返回0值并退出main()函数。返回0后不执行任何操作;

所以对于你的情况,行 printf("Bottles: %i\n", min * 12); 未执行,因为此行在返回0后写入;言。

所以在返回0之前放入该行;你的代码运行正常!

答案 2 :(得分:3)

更改

的位置

返回0;

从返回的几个使用,一个是返回使用中断功能

此处您的返回0; 语句会破坏您的主要方法并滑动以下语句。

从现在开始,养成在代码末尾使用返回0; 的习惯

像这样

int main(void)

{

int min;

do
{
    printf("Minutes: ");
    min = get_int();
}
while(min <= 0);



printf("Bottles: %i\n", min * 12);


return 0; // always use before the right parenthesis of main function

}

快乐编码