qq_31214517
2016-03-23 12:25
采纳率: 37.5%
浏览 1.4k

c++简单问题,求大神解答

代码如下,结果输入了之后完全没有输出,完全不清楚什么状况,求解!!!

#include
#include
#include
#include
float x,y,z;
float InvSqrt(float x)
{
float xhalf = 0.5f*x;
int i = (int)&x;
i = 0x5f3759df - (i >> 1);
x = (float)&i;
x = x*(1.5f - xhalf*x*x);
return x;
}
float count_1()
{
clock_t s1 = clock();//开始时间
float i = 1 / sqrt(x);
clock_t e1 = clock();//开始时间
printf("%.2f s\n", ((float)e1 - s1) / CLOCKS_PER_SEC);
return 0;
}
float count_2()
{
clock_t s2 = clock();//开始时间
float i = InvSqrt(x);
clock_t e2 = clock();//开始时间
y = s2 - e2;
printf("%.2f s\n", ((float)e2 - s2) / CLOCKS_PER_SEC);
return 0;
}
void main() {
printf("请输入一个值");
scanf_s("%f", &x);
float count_1();
float count_2();
system("pause");
}

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • xSeeker~ 2016-03-23 12:47
    已采纳

    float count_1();
    float count_2();
    你这是在声明函数,不是调用函数,函数没调用自然没有输出!
    count_1(); //这样才是调用函数

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 小灸舞 2016-03-23 12:51

    去掉类型float,否则是函数声明了,可以用float类型的变量接收函数的返回值
    float count_1();
    float count_2();
    而且楼主InvSqrt这个函数里这句也不对x = (float)&i;
    &i是取i的地址是int*类型,没法强转成float类型的赋值给x的

    评论
    解决 无用
    打赏 举报
  • JRneymar 2016-03-23 13:00

    main函数中调用函数时不用写float

    评论
    解决 无用
    打赏 举报
  • qq_31214517 2016-03-23 13:25

    谢谢谢谢!!!原来是我智障了,又一次展现了自己智商的底线哈哈哈

    评论
    解决 无用
    打赏 举报
  • Fly_RuanZD 2016-03-23 15:32

    main函数可以采用两种标准写法
    1.int main(void)
    {
    return 0;
    }
    2.int main(int argc,char* argv[])
    {
    return 0;
    }

    评论
    解决 无用
    打赏 举报
  • Dacc123 2016-03-23 23:53

    谢谢谢谢!!!原来是我智障了,又一次展现了自己智商的底线哈哈哈

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题