各位大侠,能帮我看看这个代码吗?为什么要输入两次数字才能输出平方根?不要在意对于sqrt我用的整形变量

<pre>
<code><font size=3 face="Courier New"><font color="#008000">#include<stdio.h>
#include<math.h>
</font><font color="#880000">main</font><font color="#000000">()
{
</font> <font color="#0000FF">int </font><font color="#808080">k</font><font color="#000000">;
</font> <font color="#880000">scanf</font><font color="#000000">(</font><font color="#808080">"%d\n"</font><font color="#000000">,&</font><font color="#808080">k</font><font color="#000000">);
</font> <font color="#880000">printf</font><font color="#000000">(</font><font color="#808080">"%d\n"</font><font color="#000000">,</font><font color="#808080">k</font><font color="#000000">=</font><font color="#880000">sqrt</font><font color="#000000">(</font><font color="#808080">k</font><font color="#000000">));
}
</font></font>
</code></pre>
#include<stdio.h>
#include<math.h>
main()
{
int k;
scanf("%d\n",&k);
printf("%d\n",k=sqrt(k));
}

抱歉,看下面的代码,上面的不知道怎么回事乱码了。

第1个回答  推荐于2016-08-30
把scanf中的\n去掉追问

这是为什么呢?我是电脑小白,正在被老师灌输c语言,还要期末考试呀,泪~~~~

追答

\n是区分你每次输入的,比如scanf("%d\n%d",&a,&b);一个数回车,另一个数。最后的回车代表的是整个输入结束,所以你的%d\n就是回车表示第一个数输完了,第二个回车表示真个输入结束了。好吧,自己表示这语言组织有点捉急呀

本回答被提问者采纳