有n的scanf的函数,必须要多输入一个非(空格,制表符,回车)的其他元素,计算机才会执行下一个语句。(源代码贴在最后)
原理是:scanf中的n和空格等,
scanf("%dn",&a) 或者scanf("%d ",&a)
实际当你输入的时候,不会是输完一个数字后就点回车然后就马上能够执行下一条语句,而是只有当scanf接收到下一个非(空格,制符表,回车)后,才会执行下一个语句!并且那个最后输入的东西是不会被读来的,会被留在输入流里。等待下一次有可能输出
如
输入12345
输入的3变成了结束标志,并且在输入流里面,后来才输出了
这是我本来源代码,发现错误的那个:的
#include<stdio.h>
#include<math.h>
struct triangle //定义结构体类型
{
float a,b,c;
};
float area(struct triangle side1)
{
double l,s;
l=(side1.a+side1.b +side1.c )/2;
s=sqrt(l*(l-side1.a)*(l-side1.b)*(l-side1.c));
return (float)s;
}
int main()
{
float s;
struct triangle side;
printf("imput the three sides:n");
scanf("%f %f %f",&side.a,&side.b,&side.c);
// scanf("%f %f %f ",&side.a,&side.b,&side.c);
printf("%f %f %f",side.a ,side.b,side.c);
s=area(side);
printf("the area is :%f",s);
}
最后,感谢我的宝贝,婕婕0.0