繁体   English   中英

(新手)结束一个程序,偶数或奇数程序

[英](Newbie) Ending a program, even or odd program

我正在编写一个程序来查找数字是偶数还是奇数。 它会一直询问一个数字,直到用户输入零。

#include <stdio.h>

int main () {
    int number = 1;

    do{
        printf("Number? ");
        scanf("%d", &number)
    
        if(number % 2 != 0){
            printf("Odd\n");
        }
        else{
            printf("Even\n");
        }
    }while(number != 0);

    return 0;
}

但是,我不知道如何在我键入零而不输出“偶数”时结束程序。 非常感谢帮助,因为我坚持这一点并且不太确定如何前进。

您可以将else更改为else if并在打印Even之前检查数字是否不为0

只需将条件语句if(number != 0)添加到您的else块中:

#include <stdio.h>

int main () {
    int number = 1;

    do{
        printf("Number? ");
        scanf("%d", &number)
    
        if(number % 2 != 0){
            printf("Odd\n");
        }
        else if(number != 0){
            printf("Even\n");
        }
    }while(number != 0);

    return 0;
}
#include <stdio.h>

int main () {
    int number = 1;

    do{
        printf("Number? ");
        scanf("%d", &number)

        if (number == 0)
        {
            printf("You Entered 0 to quit\n");
            break;   // Exit out of the Do-While Loop immediately
        }
    
        if(number % 2 != 0){
            printf("Odd\n");
        }
        else{
            printf("Even\n");
        }
    }while(number != 0);

    return 0;
}

在这种情况下,最好使用无限 while 循环。

例如

#include <stdio.h>

int main(void) 
{
    while ( 1 )
    {
        printf( "Enter a number (0 - exit): " );
        
        int number;
        
        if ( scanf( "%d", &number ) != 1 || number == 0 ) break;
        
        printf( "The number %d is %s.\n", number, number % 2 == 0 ? "even" : "odd" );
    }
    
    return 0;
}

程序 output 可能看起来像

Enter a number (0 - exit): 10
The number 10 is even.
Enter a number (0 - exit): 11
The number 11 is odd.
Enter a number (0 - exit): 0

您还可以在程序中包含 header <stdbool.h>

#include <stdbool.h>

并像这样重写 while 语句

    while ( true )
    {
        // ...
    }

您可以简单地在返回时使用exit() function 或直接在return 0时使用。

#include <stdio.h>

int main () {
    int number = 1;

    do{
        printf("Number? ");
        scanf("%d", &number)
        if (number == 0)
          return 0;
    
        if(number % 2 != 0){
            printf("Odd\n");
        }
        else{
            printf("Even\n");
        }
    }while(number != 0);

    return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM