C_and_CPP 板


LINE

開發平台(Platform): (Ex: Win10, Linux, ...) win10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) devc++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)問題(Question): 陣列內元素變為最後輸入的字串 餵入的資料(Input): 浮點數,用陣列儲存 預期的正確結果(Expected Output): 判定是否為浮點數 錯誤結果(Wrong Output): 陣列內元素都是一樣的 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) https://glot.io/snippets/fscp7lm85d 補充說明(Supplement): https://imgur.com/eJTs2z6 我自己用devc++執行的成果 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.95.73 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1603385825.A.9A7.html
1F:推 ucrxzero: scanf("%s",number);改成scanf("%s",&number); 10/23 01:02
2F:→ ucrxzero: 要改值一定要傳位址R 10/23 01:02
3F:推 ucrxzero: 忽略上面我知道你問題在哪了 10/23 01:05
4F:推 ucrxzero: number被改爛了 10/23 01:07
5F:→ ucrxzero: 一樣是number的問題,你number一變前面都會跟著變 10/23 01:07
6F:→ ucrxzero: number是位址~~~你只是一值改number指向的值而已~ 10/23 01:08
7F:→ wm0116: 那我這邊怎麼改才會變成我想要的結果呢 10/23 01:09
8F:推 ucrxzero: 不能動架構嗎? 10/23 01:15
9F:→ ucrxzero: 還有我有一個問題 你要輸入浮點數float不是才佔4byte 10/23 01:16
10F:→ ucrxzero: 為什麼要用50byte? 10/23 01:17
11F:→ wm0116: 我只是多給他大小而已,我不清楚我要如何修改他才會變成 10/23 01:19
12F:→ wm0116: 我想要的結果,我能想到的只有這樣而已QQ 10/23 01:19
13F:推 ucrxzero: 幫你改好了 10/23 01:21
14F:→ ucrxzero: 改成宣告 char number[50][50]; 10/23 01:21
15F:→ ucrxzero: 改 scanf("%s",number[i]); 10/23 01:21
16F:→ ucrxzero: 改 a[i]=number[i]; 10/23 01:22
17F:→ ucrxzero: 萬事如意 10/23 01:22
18F:→ wm0116: 換句話說,我只能用二維陣列存放資料,再去做判定跟修改 10/23 01:23
19F:推 ucrxzero: 因為你原本寫的是改number指向的值,然後把number的 10/23 01:24
20F:→ ucrxzero: 位址放進a[i] 10/23 01:24
21F:→ ucrxzero: 我舉個例: 你原本像是一個迴圈指令 var=num 10/23 01:25
22F:→ ucrxzero: 但你每次指定給a[i]的都是&var 10/23 01:26
23F:→ ucrxzero: 那等於沒改 10/23 01:26
24F:→ ucrxzero: 只是剛好C字串的位址就是他的字串,你誤以為傳到值 10/23 01:26
25F:→ wm0116: 我明白了,也就是不同的值要指向不同的位子 10/23 01:27
26F:→ wm0116: 我的寫法是讓他通通指向同一個位子,所以才有問題 10/23 01:27
27F:→ ucrxzero: https://glot.io/snippets/fscq0gdgey 10/23 01:27
28F:→ ucrxzero: 對R 10/23 01:28
29F:→ wm0116: 感謝大大 10/23 01:28
30F:→ ucrxzero: 迴圈指定字串不可能在同一個字串內搞 10/23 01:28
31F:→ ucrxzero: 因為字串本身就是位址 10/23 01:28
32F:→ wm0116: 因為陣列是常數指標,所以我不能在迴圈這樣搞 10/23 01:29
33F:→ ucrxzero: 除非拆解原number[0]+number[1]這種方法,但要重構 10/23 01:29
34F:→ ucrxzero: 算了上面那句話當我沒說 10/23 01:30
35F:→ ucrxzero: 式的 10/23 01:30
36F:→ wm0116: 因為小弟我沒學到那麼深奧,所以只能用最原始的方法處理 10/23 01:31
37F:推 ucrxzero: 我把我01:29的話重新講一次好惹 10/23 01:33
38F:→ ucrxzero: 你要用指向的寫法寫 要類似這樣 10/23 01:34
39F:→ ucrxzero: int main(void){ 10/23 01:34
40F:→ ucrxzero: char a[10]; 10/23 01:34
41F:→ ucrxzero: a[0]='a'; a[1]='b', a[2]='c' ;} 10/23 01:34
42F:→ ucrxzero: 這種就是指向的方法 10/23 01:35
43F:→ wm0116: 拆成一個個字元去做存入的動作吧?這樣才能指向? 10/23 01:36
44F:→ ucrxzero: 你就會得到a="abc" 再用atof轉就可以,照你原本邏輯是這 10/23 01:37
45F:→ ucrxzero: 對啊 10/23 01:37
46F:→ ucrxzero: %s跟%c的作法不一樣RRRR 10/23 01:37
47F:→ ucrxzero: 但就要重構你的程式碼了我也沒寫過但一定可行 10/23 01:38
48F:→ ucrxzero: 你的問題這樣有解決了嗎 10/23 01:39
49F:→ wm0116: 有,我明白該如何處理了,謝謝大大解惑 10/23 01:39
50F:推 ucrxzero: 建議*a[50] 也改成a[50][50] 10/23 01:44
51F:→ ucrxzero: 沒是忽略上面的那段話我以為會存取錯誤應該不會 10/23 01:45
52F:→ wm0116: 好的,我明白啦,感謝 10/23 01:46







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP