首页 > 解决方案 > 当值为负时不要打印消息

问题描述

"The biggest integer is:" 当我输入负值时,我不想打印。但是,当我只想打印一个或另一个时,我的程序会打印这两个语句。我想将其作为do-while声明。请帮忙。

#include <stdio.h>    

int main() {    
    int biggestnum;
    int i;    

    printf("Please enter an integer:");
    scanf("%d", &biggestnum);

    if (biggestnum < 0) {   
        printf("Didn't give me any data, goodbye.");
    } else
        do {
            printf("Please enter an integer:");
            scanf("%d", &i);

            if (i >= 0)
                if (i > biggestnum) {
                    biggestnum = i;
                }
        } while (i >= 0);

    printf("The biggest integer is: %d\n", biggestnum);

    return (0); 
}

标签: c

解决方案


您需要{}为您的 else 语句添加大括号,否则在两者之后,if (biggestnum<0)并且else statement(无论哪一个为真)您将转到这一行printf("The biggest integer is: %d\n", biggestnum);,然后return 0.

int main() {

    int biggestnum;
    int i;

    printf("Please enter an integer:");
    scanf("%d", &biggestnum);

    if (biggestnum < 0) {
        printf("Didn't give me any data, goodbye.");
    }
    else
    {
        do {
            printf("Please enter an integer:");
            scanf("%d", &i);

            if (i >= 0)
                if (i > biggestnum) {
                    biggestnum = i;
                }

        } while (i >= 0);

        printf("The biggest integer is: %d\n", biggestnum);
    }

    return (0);
}

推荐阅读