注册 登录
编程论坛 C++教室

发现一个奇怪的现象。

lemonandtree 发布于 2017-11-21 16:23, 1313 次点击
#include<iostream>
using namespace std;
#include<cmath>
float area (float a,float b,float c)
{
    if((a+b<=c)||(a+c<=b)||(b+c<=a)||(a-b>=c)||(a-c>=b)||(b-c>=a))
        cout<<"您输入的边长无法构成三角形";
    return printf("......");
    float p,t,s;
    p=(a+b+c)/2;
    t=p*(p-a)*(p-b)*(p-c);
    s=sqrt(t);
    return s;
}
void main()
{
    float a,b,c,s;
    cin>>a>>b>>c;
    s=area(a,b,c);
    cout<<s;
}
在这句中return printf("......");
为什么后面总有一个数字?
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
还和点的个数相同.
8 回复
#2
rjsp2017-11-21 16:26
s=area(a,b,c);
cout<<s;
你自己写的代码吗?
#3
lemonandtree2017-11-22 10:19
是啊,不知道则么回事
#4
rjsp2017-11-22 11:52
什么怎么回事?你自己输出了printf的返回值,怎么又说“不知道则么回事”?
#5
lemonandtree2017-11-22 15:25
可是我输出的不是“.....”,为什么后面还会有数字啊?
#6
rjsp2017-11-22 16:22
cout<<s;
你自己输出的呀,s是个float型的数字

#7
lemonandtree2017-11-24 08:59
这个s我在上面的函数area没有计算出来,也会输出吗?而且输出的和printf()中的点的个数是一样的,是不是会自动计算点的个数作为 s的值然后输出来。
#8
rjsp2017-11-24 09:22
以下是引用lemonandtree在2017-11-24 08:59:20的发言:

这个s我在上面的函数area没有计算出来,也会输出吗?
听不懂你什么意思,你自己写的返回(见下面的红字),什么叫“也会输出”
float area (float a,float b,float c)
{
    if((a+b<=c)||(a+c<=b)||(b+c<=a)||(a-b>=c)||(a-c>=b)||(b-c>=a))
        cout<<"您输入的边长无法构成三角形";
    return printf("......");

而且输出的和printf()中的点的个数是一样的,是不是会自动计算点的个数作为 s的值然后输出来。
和点的个数无关,不是点也一样,printf返回输出的字符数目


#9
lemonandtree2017-11-24 09:44
哦哦,懂了,就是不论是什么字符,返回输出的是字符的数目。谢谢了。
1