- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言编程常遇到的问题
张伟志 山东丁业大学电力工程学院2‘50061)
摘要:本文分析了笔者在C语言编程过程甲常遇到的一些问砚,给出
了有效的解决办法 ‘
关键词:C语言 数据类型 scan找)函教 内存管理
目前,c语言因其功能强大、使用灵活等诸多优点而彼广泛使用,用C
语言可以写出简单明了、高效且易于维护的程序.但C语言的编译环境有
一些不完普的地方,常常出现一些意想不到的错误。给编程者带来很大不
便.本文谈谈笔者在用C语言编程时经常遇到的一些问理及解决办法。
一、数据类型转换问题
C语言允许不同类型的数据间进行混合运算,运算时系统会自动进行
炎型转换,但转换的依据是事迭代由各扮管量的举刑 而不管译该结果的
实际类型是什么.这样,当运算结果的实际类型和运算量的类型不符时,
就会出错。请看下面的例子,
例I、/.输出A个整形数 卜1的乘积率
mam ()
毛intt0200,1-300;
pnntf 〔“%氏%址”。i;1 ;
》
1
上面程序的执行结果是一5536不是60000。因为60000己超
过了签本整形数所表示的范围,它肠于长整形数。
要想得到正确结果必需加上类型转换运算符 (long),即将上例中的
lrmft语句改为下列两种语句之一
pnntf(%Id”, (long)iJ`);
脚如廿 (“%记”,沪(long)I);
例2、!*求10以内的自然数的倒数和*/
mam()
夏 intn;
习。时 sum=0;
- I- . 1八 林 占占飞
stn+0I/n;
prill峨,%fw 3川 )
夕
同样,上面程序的执行结果是 1.000000而不是2.928968。要想得到正
确结果2.928968,必须将I或n转换成实型.即将上例中的sum十一llns语
句替换为下列三种语句之一
9l廿nr=1Oln7
sum+= (float) lln;
,山n+=1i(float)n;
以上两程序编译时都可顺利通过,初学者很难发现错误。因此,在c
语言下作数值运算时,编程者必须注意运算结果的类型,如果运算结果超
过了运算数据类型所表示的数值范围,就必须加类型转换运算符。
二、scanfo)函数使用中的问鹿
--1i)函数是c语言甲经常使用的格式输入函数,它对输入数据的格
式和类型都有严格要求,因此初学者在使用scan双)函数时,经常因不能正
确输入数据而使程序无法运行,系统又不给出错误提示.使人很难找出错
误原因。例如:
一股认为. 卜at这个程序是司以止常运行的
`*Addtwolntegetsuntlithefirstis0*
m臼m 《)
innab;
while(a!=0)
{
printf(finpleaseniputtwointegers:”),
scarf(01ud,%d,a,b);
printf(}niod十%d=%d\n,a,b,a+b);
}
}
然而。一旦输入数据格式或类型不符合要求 (如输入4.5,al等),则
不仅这一次输入失败,而且以后程序常常循环不止.不接受新的数据.这
是因为非法字符还存留在健盘级冲区中。
为进免这种现象,可采用对 SC喊)的返回值进行判断的方法,使程序
具有容错本领。
具体地说,就是将源程序中的~ tr)ir句替换为:
while(acanf(%氏%d几a,b)!=2)
轰 l- 0C\nInvalid呷城doitagamut),
姻ush(s记加)二
命
三 内存管理错误问踢
灵活性是c语言的主要优点之一,它只对程序进行语法检查而把语意
的合理性检
您可能关注的文档
- C语言中指针使用常见问题及解决办法研究.pdf
- C中Namespace概念的逆向分析——构件化程序设计支持研究.pdf
- Bi系超导粉末在热处理过程中放氧和吸氧过程的研讨.pdf
- Bi系带材交流损耗测量的实验研讨.pdf
- Bi系带材性能研讨.pdf
- Bi系高温超导带材交流传输损耗的研究和分析研究.pdf
- 多资源闭环反馈调度系统的构建与分析研究.pdf
- 小學五年級學生因數與倍數文字題之動態視覺化學習情境設計研究.pdf
- Bi系高温超导单芯线材拉拔工艺的数值模拟研究.pdf
- 小學英語教師應用資訊融入教學的歷程探究研究.pdf
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
最近下载
- 宜兴市各级文物保护单位一览表.docx
- 国学《千字文》之《渠荷的历》个人原创课件公开课课件.pptx VIP
- 老旧小区改造工程项目可行性研究报告.docx VIP
- 《GB∕T 45003-2024职业健康安全管理 工作中的心理健康安全:管理社会心理风险 指南》解读和应用指导材料(2024A0-雷泽佳).docx VIP
- 妙事多音乐--张老师 -培训讲解.ppt
- 基础化学高职高专第五版高琳第十章氧化还原平衡.pptx
- 在线网课学习课堂《英语视听说(西京学院 )》单元测试考核答案.docx
- 电子商务平台商家入驻协议书模板.doc
- 北京四中2023学年度上学期初中九年级期中考试物理试卷.docx
- 自然教育研学方案.pptx
文档评论(0)