C 当条件不匹配时,程序仍会打印

C 当条件不匹配时,程序仍会打印,c,C,我只想让程序结束,不要打印任何东西。我尝试将printf放入while循环,但它没有解决我的问题 #include <stdio.h> #include <limits.h> int main() { int i, max; i = 0; max = INT_MIN; while (i >-1) { if (i > max) { max = i; } p

我只想让程序结束,不要打印任何东西。我尝试将
printf
放入
while
循环,但它没有解决我的问题

#include <stdio.h>
#include <limits.h>

int main()
{
    int i, max;
    i = 0;
    max = INT_MIN;

    while (i >-1) {
        if (i > max) {
            max = i;
        }
        printf("give a number: ");
        scanf("%d", &i);
    }
    printf("max= %d\n", max);
    return 0;
}
#包括
#包括
int main()
{
int i,max;
i=0;
max=INT_MIN;
而(i>-1){
如果(i>max){
max=i;
}
printf(“给出一个数字:”);
scanf(“%d”、&i);
}
printf(“max=%d\n”,max);
返回0;
}

当我输入-2或任何负数时,结果为
max=0
,程序结束。

好,因此如果您想继续打印“running”max,直到或除非用户输入负数,请尝试以下操作:

#include <stdio.h>
#include <limits.h>

int main()
{
    int i, max;
    i = 0;
    max = INT_MIN;

    while (i > -1) {
        printf("give a number: "); // Ask for number ...
        scanf("%d", &i);           // ... and fetch it before doing anything else!
        if (i > max) max = i;
    }
    if (max > -1) printf("max= %d\n", max); // Show max if not negative
    return 0;
}
#包括
#包括
int main()
{
int i,max;
i=0;
max=INT_MIN;
而(i>-1){
printf(“给出一个数字:”;//询问数字。。。
扫描(“%d”,&i);/…并在执行任何其他操作之前获取它!
如果(i>max)max=i;
}
if(max>-1)printf(“max=%d\n”,max);//如果不是负数,则显示max
返回0;
}

请随时询问进一步的解释和/或澄清。

扫描后得到负数后返回为什么我的问题被否决了我对该网站是新手,只是想知道是否需要改进,以便我可以帮助其他人和帮助解决我问题的人,因为你会说这样的话:我希望该计划结束,不要打印任何东西。和:当我输入-2或任何负数时,结果是max=0,程序结束。如果你提供更多的上下文,人们会更快地帮助你。具体点。例如,这样陈述你的句子:当输入Y时,我希望X发生。但是当输入Y时,Z发生。如果我希望程序在结束时打印最大值,而不是在每个循环中打印最大值,并且仍然具有条件(i>=0),该怎么办.像这样的事情给出一个数字:6给出一个数字:2给出一个数字:-1最大=6@zellez-在这种情况下,返回(接近)原始代码:将
printf
语句放在
while
循环结束后。(当然,循环中不需要
if
块)我希望代码循环并询问用户一个数字,然后当用户想要退出循环时,他写一个负数,然后printf才打印n个数字的最大值。问题是,如果用户启动循环,然后输入负数,printf仍会打印某些内容,因为它在循环之外。如果我把pintf放在循环中,它会在循环的每一次运行中打印出来,我不希望这样。很抱歉,我的评论太长,只是想解决我的问题,谢谢你的帮助help@zellez-好的,现在编辑的代码可以做到这一点!因此,只要用户输入了任何非负数,它就会显示最大值;如果用户在第一次运行时键入负数,则
max
将为负数,并且没有输出。我们已经到达“安宁基地”了吗?