如果我写了一个C程序,那么它就不会自动退出,如果像......那样......
#include<stdio.h>
int main ()
{
int a, b, c, d;
printf ("enter the value ");
scanf("%d %d %d ",&a,&b,&c);
d=a+b+c;
if(d==180)
printf("triangle is valid ");
else
printf("triangle is invalid ");
return 0;
}
然后它不会自行终止.....
任何人都可以帮忙弄清楚这个问题是什么......
答案 0 :(得分:7)
这是scanf格式字符串末尾的空格。删除该空格,您的程序将终止。
答案 1 :(得分:5)
我猜scanf()格式字符串与您输入数据的格式之间存在不一致。但严重的是,在提出新问题之前,您应该接受一些旧答案。
答案 2 :(得分:3)
省略scanf字符串中的空格
scanf("%d%d%d",&a,&b,&c);
答案 3 :(得分:0)
scanf函数通常会跳过输入之间的空格。
在您的代码中,您可以按以下格式询问输入
scanf("%d %d %d ",&a,&b,&c);
它表示1输入为1个空间,1个输入和1个空间,1个输入和1个空间。
因此,如果您在输入后给出三个输入,它也将跳过新行。
因为scanf函数将输入作为非空格字符。
要避免这种情况,您需要提供4输入。所以那个时候,前三个输入存储在变量a b c中,然后下一个空格和值存储在缓冲区中。
After run the program you need to give the input like the folllowing
12 12 12 12
这里前三个输入存储在a b c变量中。
否则您的scanf格式应为以下格式
scanf("%d%d%d",&a,&b,&c);