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;
}

2个回答

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

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

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)怎么办?
接近 4 年之前 回复
qq_31214517
qq_31214517 回复小灸舞: 是啊,为什么会打印不出来呢?
接近 4 年之前 回复
qq423399099
小灸舞 你要输出什么结果?只会打印这两句printf("%f", n); printf("%.2f s\n", ((float)e1 - s1) / CLOCKS_PER_SEC); 莫非楼主想打印1/sqrt(x)?
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问