| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1137 人关注过本帖
标题:函数调用遇到的问题
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用林月儿在2015-9-23 13:04:36的发言:

对C语言研究不全面,不深入。请多指教
想要的效果是换行符结束输入,不知道问题怎么发现、、、请指教


這跟C語言沒太大關係。你希望的效果是換行符結束輸入,沒問題,除了需要檢測遇到換行符之外,還要檢測輸入的數據是否已經超越數組容量!你的代碼是簡單粗暴地循環讀滿N個int(實際應是char,你錯誤地用了scanf()加%d),那是沒考慮到實際輸入的字符可能沒有N個或超越N個,死板地當了必須是N個,何況還缺了字符串結束符'\0'(這個才是跟C語言有關的)。小林子的代碼,修正了大多數問題,但仍然沒有檢測數組越界情況。

授人以渔,不授人以鱼。
2015-09-23 13:10
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
以下是引用TonyDeng在2015-9-23 13:10:43的发言:



這跟C語言沒太大關係。你希望的效果是換行符結束輸入,沒問題,除了需要檢測遇到換行符之外,還要檢測輸入的數據是否已經超越數組容量!你的代碼是簡單粗暴地循環讀滿N個int(實際應是char,你錯誤地用了scanf()加%d),那是沒考慮到實際輸入的字符可能沒有N個或超越N個,死板地當了必須是N個,何況還缺了字符串結束符'\0'(這個才是跟C語言有關的)。小林子的代碼,修正了大多數問題,但仍然沒有檢測數組越界情況。



懂了!不过小林子。。。是谁?

剑栈风樯各苦辛,别时冰雪到时春
2015-09-23 13:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
學編程的時候,隨時讀一讀《編程珠璣》是好的。我說“隨時”的意思,是任何時候都可以讀,入門之前,入門之後,深造的過程中,以後很長時間的將來,都應該反覆讀,隨著知識和經驗的積累,每次讀都會有新的體會。信我的就讀吧,不信就算了。

授人以渔,不授人以鱼。
2015-09-23 13:13
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用林月儿在2015-9-23 13:12:43的发言:




懂了!不过小林子。。。是谁?

小林子就是你呀

授人以渔,不授人以鱼。
2015-09-23 13:13
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
以下是引用TonyDeng在2015-9-23 13:13:34的发言:


小林子就是你呀


我是大林子!

剑栈风樯各苦辛,别时冰雪到时春
2015-09-23 13:14
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
小林子就是紫金城里皇上身边的一个小太监
2015-09-23 13:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
小林的問題,顯然也存在祗管寫代碼沒有測試的習慣。寫了之後,用多種情況運行檢測代碼是否正確,這是很基本的習慣,程序猿必須培養的。比如那個read_word(),如果用戶直接敲回車會怎樣?這是對應實際輸入數為零的情形,那麼同樣也要考慮實際輸入數過多的情形,這是在邏輯分析上就必須做的,編寫代碼時,本來就要考慮這些情形,編寫之後,也要檢測一下代碼是否能夠很好地應對這些情形——這才是學編程最應該學的技能!

授人以渔,不授人以鱼。
2015-09-23 13:19
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
以下是引用TonyDeng在2015-9-23 13:19:33的发言:

小林的問題,顯然也存在祗管寫代碼沒有測試的習慣。寫了之後,用多種情況運行檢測代碼是否正確,這是很基本的習慣,程序猿必須培養的。比如那個read_word(),如果用戶直接敲回車會怎樣?這是對應實際輸入數為零的情形,那麼同樣也要考慮實際輸入數過多的情形,這是在邏輯分析上就必須做的,編寫代碼時,本來就要考慮這些情形,編寫之後,也要檢測一下代碼是否能夠很好地應對這些情形——這才是學編程最應該學的技能!


有道理,我这不是在努力改进么其他代码有考虑健壮性问题了,但是!小林子真的是太监?版主你不够意思!

剑栈风樯各苦辛,别时冰雪到时春
2015-09-23 13:22
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用林月儿在2015-9-23 13:22:29的发言:



但是!小林子真的是太监?版主你不够意思!


小林子是岳靈珊對林平之的愛稱!

授人以渔,不授人以鱼。
2015-09-23 13:24
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 19楼 TonyDeng
看不出有什么区别,不跟你玩了

剑栈风樯各苦辛,别时冰雪到时春
2015-09-23 13:26
快速回复:函数调用遇到的问题
数据加载中...
 
   



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

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