C语言中printf不能输出的问题

/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:三角形的面积为:area=sqrt(s*(s-a)*(s-b)*(s-c)).其中
,s=(a+b+c)/2,a、b、c为三角形三条边的长。定义两个带
参数的宏,一个用来求s,另一个用来求area。编写程序,
在程序中用带参数的宏求面积area。
-------------------------------------------------------*/
#include <stdio.h>
#include "math.h"
/***********SPACE***********/
#define S(x,y,z)(x+y+z)/2//宏定义
#define AREA(s,x,y,z)sqrt(s*(s-x)*(s-y)*(s-z))
main()
{
double area;
float a,b,c,s;
printf("a,b,c=");
/***********SPACE***********/
scanf("%f,%f,%f",&a,&b,&c); //格式化输入
if(a+b>c&&b+c>a&&c+a>b)
{
/***********SPACE***********/
s=S(a,b,c); //计算三角形周长的一半
/***********SPACE***********/
area=AREA(s,a,b,c); //计算三角形面积
printf("area=%lf\n",area);
}
}
这个代码应该没错吧 但是最后就是不能输出area的值,求大神指导。

能出啊。  估计程序运行时输入数字时候中间没有用逗号隔开 。 例如输入2,3,4 后回车。

温馨提示:内容为网友见解,仅供参考
无其他回答

printf不能输出什么原因?
编译器问题:在某些编译器中,printf 函数的实现可能与标准 C 语言规范不符。在这种情况下,%f格式控制符可能无法输出正确的结果。解决方法是使用其他编译器或者尝试使用其他 printf 函数实现。如果遇到了%f格式控制符不能输出的问题,可以尝试检查变量类型是否正确,是否需要强制转换为浮点数类型,以及浮点数...

C语言中printf()中的内容为什么不会全部输出到控制台上?
在 C 语言中, `printf()` 函数会在屏幕上打印指定的输出格式化字符串。如果输出格式化字符串太长,可能会导致其不能完全输出到控制台上。这通常是由于控制台窗口的默认大小或输出缓冲区的大小限制所致。控制台窗口有一个默认大小,它指定了控制台窗口显示多少行文本和多少列字符。如果你的输出格式化字符...

c语言 printf错误
在使用C语言的printf函数时,如果遇到错误提示,其中的关键在于理解printf函数的格式化字符串与实际输出内容的匹配规则。在示例代码`printf("max gongyueshu and min gongbeishu are:%d and %d\\n ",p,q);`中,可能存在理解上的混淆。错误提示可能源于格式化字符串与变量类型不匹配。在格式化字符串中使用...

为什么有时候printf无法显示输出?
调试一些短小的程序的时候,一般会用printf等输出一些有用信息,以粗略的定位Bug的位置!作为学习C语言甚至刚接触计算机开始,就认识的printf函数,可能我们已经非常的熟悉其使用了,虽然对其底层格式化输出的原理知之甚少,对整个执行流程似懂非懂。不知道你是否曾经遇到过printf失灵的情况,即本应该打印数据,...

为什么在C语言中,这个printf的输出是错误的?
你这并不是强制类型转换,printf是个变参函数,而且比较“笨”,它只能识别你给他设定好的输出类型,因为你设定为%d,所以只能输出出错,5\/2是结果是整数,而5.0\/2是浮点数运算,结果为浮点数,所以类型不匹配。 谢谢,望采纳

C语言printf输出时,为什么当我把 格式串中的 \\n 去掉之后无法输出了呢...
printf并不会直接输出到屏幕,而是输出到缓冲区。只有当有刷新缓冲区的时候才会输出到屏幕。导致缓冲区刷新到情况有这些:1 强制刷新 fflush;2,放到缓冲区到内容中包含\\n \\r ;3,缓冲区已满;4,需要从缓冲区拿东西到时候,如执行scanf。去掉那个\\n之后缓冲区一直得不到刷新,会一直等到缓冲区满的...

请问我的C语言中printf为什么没有输出?
scanf里面不要加\\n 不然会无法得到正确结果 你这个就是卡在scanf里面了

c语言,函数内的printf打不出
k+1);如果把 sum++;for(sb=1;sb<=n;sb++) printf("%d ",a[sb]); printf("\\n");抽出来写成 函数,你要注意函数的参数,你要保证进入时函数的参数值和退出时函数的参数值,确是你所要结果。sum 确能累加,n 和 a[] 的 大小\/数值 确是当前大小\/数值。书写正确,不会打不出数值。

c语言-printf里的内容不能打印
interval;printf("Hello world.");for(;;) { time_t end=clock();long end_l=end;interval=end_l-start_l;if(interval>=10000000)break;} printf("\\r");printf(" \\n");} } 这里的hello world需要先输出,就需要遇到\\n,要符合的你要求,则需要在循环外增加一条带\\n的printf语句。

C语言中printf不能输出的问题
能出啊。 估计程序运行时输入数字时候中间没有用逗号隔开 。 例如输入2,3,4 后回车。

相似回答