[問題] 練習的程式發生"應用程式發生錯誤"

看板C_and_CPP (C/C++)作者 (呦厚厚)時間16年前 (2009/04/04 21:45), 編輯推噓0(0011)
留言11則, 3人參與, 最新討論串1/2 (看更多)
#include "stdafx.h" #include <iostream> using namespace std; void main() { int *a,b=0; a=new int; do{ cin>>a[b]; b++; }while(a[b-1]!=0); } 在執行後 如果我輸入的數字個數在3個以下就不會有問題 可是如果我輸入超過3份資料 再下一個資料輸入0要結束時 就會出現應用程式出現錯誤的訊息 ??? 這是為什麼??? 謝謝了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.163.42

04/04 21:46, , 1F
a=new int[b]; 這樣寫吧??
04/04 21:46, 1F

04/04 21:48, , 2F
我兩種都試過了 我會出現應用程式發生錯誤
04/04 21:48, 2F

04/04 21:49, , 3F
你的 while 迴圈結束條件有問題吧??
04/04 21:49, 3F

04/04 21:50, , 4F
為什麼要寫 while(a[b-1]!=0); 呢??
04/04 21:50, 4F

04/04 21:51, , 5F
C++可沒有保證你的 a[b] 會等於零
04/04 21:51, 5F

04/04 21:51, , 6F
我想寫說當使用者輸入的數字為0時 while 就結束
04/04 21:51, 6F

04/04 21:52, , 7F
突然發現我會錯意了 XD 不過你的程式碼也真的誤很大啊...
04/04 21:52, 7F

04/04 21:53, , 8F
請改用 vector 才能達成你想做的事情
04/04 21:53, 8F

04/04 21:53, , 9F
怎麼說?? 請指點一下吧 謝謝囉 XD
04/04 21:53, 9F

04/05 01:49, , 10F
不需要vector吧 while(a[b-1]!=0)這種寫法很常見
04/05 01:49, 10F

04/05 01:50, , 11F
但我認為這真是有夠爛的 遠不如一個break來得簡單明暸
04/05 01:50, 11F
文章代碼(AID): #19rsH_fr (C_and_CPP)
文章代碼(AID): #19rsH_fr (C_and_CPP)