程序没问题 运行不如意 高手来点意见

作者在 2011-08-29 07:52:05 发布以下内容
# include <stdio.h>
int main (void)
{
 float a, b, t;
 printf("请输入两个浮点型的数据:\n");
 scanf("%f %f\n", &a, &b);
 if (a > b)//互换两个数
 {
  t = a;
  a = b;
  b = t;
 }
 printf("a = %f b = %f\n", a, b);
 
 return 0;
}
默认分类 | 阅读 912 次
文章评论,共5条
edwardflee
2011-08-29 10:22
1
scanf(&quot;%f %f\n&quot;, &amp;a, &amp;b);<br />
把\n去掉<br />
呵呵,我也经常记不住这个
迷途精灵(作者)
2011-08-29 11:30
2
行了&nbsp;&nbsp;谢咯哈
迷途精灵(作者)
2011-08-30 16:59
3
再问问&nbsp;&nbsp;为啥\n去了就行了啊
laznrbfe
2011-08-31 16:04
4
\n在scanf格式串中不表示等待换行符,而是读取并放弃连续的空白字符。(事实上,scanf格式串中的任何空白字符都表示读取并放弃空白字符。而且,诸如%d这样的格式也会丢掉前边的空白,因此你通常根本不需要在scanf格式串中加入显式的空白。)<br />
&nbsp; &nbsp;因此,“%f\n”中的\n会让scanf读取到非空白字符串为止,而它可能需要读到下一行才能找到这个非空白字符串。这种情况下,去掉\n仅仅使用“%f”即可(但你的程序可能需要跳过那个没有读入的换行符。)<br />
参考:《你必须找到的495个C语言问题》<br />
——Steve Summit著<br />
——孙云,朱群英 译<br />
——人民邮政出版社<br />
PS:以后,要是想别人能及时回答你问题,最好点“回复”。不然,他看不到。
迷途精灵(作者)
2011-08-31 19:07
5
谢谢哈
游客请输入验证码
文章分类
文章归档