2 qq 31214517 qq_31214517 于 2016.03.25 11:08 提问

c++基础问题,求解求解!!

写了一个函数,结果编译器跟我讲n未定义,可我明明就在上一个语句中声明了n为float型了啊

float count_1(float a)
{
clock_t s1 = clock();//开始时间
int i = 0;
for (i = 0; i < 1000000; i++)
**float n = 1 / sqrt(x);
printf("%f", n);
**
clock_t e1 = clock();//开始时间
printf("%.2f s\n", ((float)e1 - s1) / CLOCKS_PER_SEC);
return 0;
}

3个回答

qq423399099
qq423399099   Ds   Rxr 2016.03.25 11:16

float n = 1 / sqrt(x);这句是在for循环里的,作用域仅限于for循环,而你的printf是在for循环外的,是看不到for循环里面定义的float n的

qq_31214517
qq_31214517 你好,我又有个问题问想问一下你,我把函数变成我在下面写的样子后为什么还是只能输出时间而不输出结果
一年多之前 回复
qq_31214517
qq_31214517 回复小灸舞: 好哒,谢谢
一年多之前 回复
qq423399099
qq423399099 回复qq_31214517: 对的,你两组**之前要大括号
一年多之前 回复
qq_31214517
qq_31214517 所以我用个{}括起来就能解决了吗?
一年多之前 回复
qq_31214517
qq_31214517   2016.03.25 11:37

float count_1(float a)
{
int i = 0;
float n = 1 / sqrt(x);
clock_t s1 = clock();//开始时间
for (i = 0; i < 1000000; i++)
1 / sqrt(x);
clock_t e1 = clock();//开始时间
printf("%f", n);
printf("%.2f s\n", ((float)e1 - s1) / CLOCKS_PER_SEC);
return 0;
}

qq_31214517
qq_31214517 想打印1/sqrt(x)怎么办?
一年多之前 回复
qq_31214517
qq_31214517 回复小灸舞: 是啊,为什么会打印不出来呢?
一年多之前 回复
qq423399099
qq423399099 你要输出什么结果?只会打印这两句printf("%f", n); printf("%.2f s\n", ((float)e1 - s1) / CLOCKS_PER_SEC); 莫非楼主想打印1/sqrt(x)?
一年多之前 回复
CSDNXIAOD
CSDNXIAOD   2016.03.30 11:23

算法问题求解基础
各种分割问题-递推求解基础
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!