标题:C语言入门,代码错误,但是我实在看不出来那里错误,
只看楼主
陈安元
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2014-6-28
得分:0 
回复 8 楼 TonyDeng
我这本书是啊哈C,也是正版的,可能前面没有提及这个事情,我现在只是在看前面章节,,其实书上没有让我用两位小数点,我只是自己想试试,不好意思。。。。

自学无门!论坛求神
2014-06-28 11:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
在讲数据类型浮点数时有讲的,浮点数不精确、字面值不能完全储存在计算机中,这是关键知识点,不会不提,而数据类型的介绍正在前面的章节中。你现在带着这个答案回头看书,就会发现是你遗漏或不重视那部分文字,而不是没讲。

授人以渔,不授人以鱼。
2014-06-28 11:04
vvvcuu
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:12
帖 子:353
专家分:1253
注 册:2014-4-22
得分:0 
回复 7 楼 陈安元
这种问题一般的C教材都会有介绍的,而且作为入门教材,介绍的应该很详细的.只能说你没有留意.

8楼版主说的那个是技巧, 这个在教材中确实一般不提及.  毕竟作为新手入门来说,按部就班的打好基础要比掌握一些技巧要好一些.

代码测试环境:  WinXP+C-Free5.0.
2014-06-28 11:07
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
那个算是基本常识,不算是技巧,就如字对齐一样,起码要知道这么一回事。实际上,像《C++ Primer》和《C标准库函数手册》、《C++编程规范》等书,都有讲如无特殊理由,尽量用double,这与说尽量用int而少用unsigned int是同时讲的。


[ 本帖最后由 TonyDeng 于 2014-6-28 11:21 编辑 ]

授人以渔,不授人以鱼。
2014-06-28 11:15
陈安元
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2014-6-28
得分:0 
回复 5 楼 TonyDeng
我这个书是啊哈C,也是正版的,只是我现在还在看前面几章,后面不知道有没有提及,其实前面也没有让我这样算,我只是想试试!呵呵

自学无门!论坛求神
2014-06-28 11:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
这是《C++ Primer》第二章中一页:


授人以渔,不授人以鱼。
2014-06-28 11:31
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
试一试没问题,现在是更详细的跟你讲解。留意16楼书籍的文字,将发现很多人常犯的三个错误:第一,没选择int型;第二,总把char当数值用;第三,不知道选用double型。

授人以渔,不授人以鱼。
2014-06-28 11:36
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
得分:0 
以下是引用马刀66在2014-6-28 10:53:37的发言:

#include
void main()
 {  
     char char1,char2,char3;
     char char1_1,char2_1,char3_1;
     int i=1;
     do{
         printf("please enter 3 letters(用空格键隔开字母)\n第%d次测试\n",i);
         scanf("%c %c %c",&char1,&char2,&char3);
            char1_1=char1-1;
            char2_1=char2-1;
            char3_1=char3-1;
            i++;
         printf("letters in the front of three:\n%c\t%c\t%c\n",char1_1,char2_1,char3_1);
          }while(i<6);
 }


我这个怎么回事啊,求告知

恩,应该是scanf函数的用法问题,你在用scanf函数输入字符,最后输入的回车符会保留下来,当你第二次输入时,这个回车符则会被读入
可以看看scanf函数的百度百科
http://zhidao.baidu.com/link?url=goWJWG3fdH0s_A39NQWuOz_q7kOYGdnbuK0G3BK9L2NmWKMWTkB3O5rkWu6f0z2enGsh_zIp5Inf37tHrfIXf_
上面这个网址值得看一下

坚持----------------------------------唯一的道路
shit ! ! !
2014-06-28 11:40
马刀66
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2014-6-28
得分:0 
回复 10 楼 TonyDeng
是的,我想知道,第一次输入运行得到了我要的结果,第二次输入后,接收显示为什么空了一行,显示接受了两个字符呢?

QQ截图20140628114743.jpg (26.24 KB)
2014-06-28 11:56
马刀66
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2014-6-28
得分:0 
回复 18 楼 wssy213
好的,谢谢
2014-06-28 11:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-433433-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029332 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved