1樓:網友
寫到乙個函式里面不停的呼叫啊。。。
j**a使用迴圈與字串列印組合星星
2樓:網友
這類問題要注意兩點:
1.要輸出多少行。
2.每行要輸出的資訊與行號的關係。
你可以用如下兩例方式思考你的問題。例子一*
外層迴圈控制行數。
for(int i = 1; i <= 3;i++)例子二、#####
#/外層迴圈控制行數。
for(int i = 1; i <= 3;i++)以上例子沒有除錯,不過大致思路就是這樣,希望對你有所幫助知其然,必知其所以然。
3樓:網友
我幫你做了下,編譯執行試過了,可以的:
class f
for(int z=i;z<10;z++)
for(int i=0;i<5;i++)for(int z=0;z<10-2*i;z++)
for(int i=0;i<10;i++)for(int z=0;z;}}
c++輸入字元出現死迴圈
4樓:網友
3樓是對的,解釋一下。是說如果輸入錯誤,就返回true。而就是修復輸入流。
是清空輸入流。因為如果輸入錯誤,錯誤的資訊依然在輸入流中,沒有被取走。這樣,使得迴圈每次都是輸入的錯誤資訊。
把輸入流清空一下,當前的輸入流就為空了,再次輸入如果正確,就輸入進去,如果還是錯誤,就再次把當前輸入流清空。
5樓:網友
那在你輸入變數值之前應該看好你所定義的變數是什麼型別。
為什麼輸入字元死迴圈
6樓:網友
你 能說一下 你這程式 要幹什麼嗎。
c語言 scanf("%d",&a);輸入字元為什麼會進入死迴圈?
7樓:網友
scanf("%d",&a); 應當鍵入數字,如果鍵入字母,scanf 語句執行失敗,a當中未取得輸入值,scanf函式返回0。
不一定是死迴圈,根程功編制的能有關。
有些情況,是由於輸入流裡的你鍵入的字母沒有被清掉,後面的輸入語句連續執行失敗。可以用 fflush(stdin); 清除多餘的字元。
例程:#include
int main()
8樓:文正
這個理論上是不會進入死迴圈的, 因為你只要輸入的數字是2, 它就會跳出迴圈。 但是問題是, 你的這個程式沒有清空輸入緩衝區的功能, 這樣一旦第一次輸入留下了乙個, 那後面的scanf就無法輸入了。
9樓:網友
因為scanf("%d",&a),%d要求的是數字,輸入字元的話,a不會被賦值。
也就是說a的值沒有改變,while迴圈的條件不變,當然會繼續執行。
10樓:莊政警
你這個問題可以利用scanf函式的返回值來解決,scanf函式的返回值是個整數,它的含義是輸入和格式匹配的引數的個數,比如scanf("%d"%d",&a,&b); 如果輸入 2 3,那就會返回2,輸入2 a,返回1輸入a 3 則返回0,一旦碰到格式不匹配的輸入,就把不匹配的輸入留在緩衝區並且拒絕讀取,那麼你這個例子的scanf("%d",&a);如果格式正確匹配的話會返回1,那就利用這一點來判斷是否出現了不匹配的情況:
int b=2,a=0;
scanf("%d",&a);
while(a != b)
/清空輸入緩衝,可能有字串輸入,所以用了迴圈} }
11樓:網友
scanf("%d",&a);
這語句只從輸入緩衝區接收數字,輸入字元時就不會接收,輸入的字元永遠在緩衝區內。
a沒有接收值所以a的值為初值0。
所以a != b為真,進入while迴圈。
而while裡面的scanf("%d",&a);語句一樣會從緩衝區接收數字,但緩衝區還是前面輸入的字元,所以還是接收不到。
所以a != b恆成立。
所以就會死迴圈。
12樓:網友
因為你要讀取的是數字,輸入乙個字元時, scanf函式會失敗,但是這個字元還在流裡面沒有被讀出來,所以就死迴圈動不了了。
13樓:雪南江
不像是死迴圈的樣子啊,你輸入2不就是退出了嗎?
為什麼輸入字元會出現死迴圈?
14樓:網友
這是由cin>>a;這個語句決定的。
由於定義了a是int型別,如果遇到cin不是int型別,則會出現異常,不會賦值給a,使其保持原值。
你輸入乙個超出int型別的值,如5555555555555555555,也會出現上述情況。
以下兩種方法測試通過。
解決方法一:用一char來排除非法字元。
#include
int main()while(b!='n');
continue;
if(a<0||a>100)
printf("error,print again!");
elsebreak;
return 0;
解決方法二:用陣列。
#include
using namespace std;
int main()
return 0;
15樓:網友
int型別的 a,不識別字元型的。
16樓:騎馬找虎的驢
檢查fasdf這幾個鍵是否正常?
c++在迴圈體中int型資料當輸入字元時直接進入死迴圈。
17樓:網友
#include
using namespace std;
int main()
else if(2 == a)
else//清楚錯誤狀態。
/忽略掉輸入緩衝區的資料。
return 0;
順便建議你去了解一下 行緩衝,全緩衝,無緩衝三種情況,瞭解出錯時,緩衝區是什麼狀況。
18樓:網友
因為cin進入了錯誤狀態。
加上這段。if (
else if(1 == a)
java中如何把一段字串寫入檔案中
ppos丨丶灬瘋傑 string str i love china file txt new file c documents and settings administrator 桌面 nihao.txt if txt.exists byte bytes new byte 512 bytes st...
mysql中如何把字串轉換成日期型別
春天的離開 select date format 2013 03 09 y m d select date format 2013 03 09 y m d select str to date 2013 03 09 y m d select str to date 2012 10 11 16 42 ...
如何用c語言輸入字串,把裡面連續的數字依次存放到陣列中
夔啟江澄邈 定義一個足夠的陣列,迴圈字元陣列,遇到數字就放到新的陣列中 void main i 0,j 0,x 0 printf 請輸入一串字元 n gets a for p a p 0 p else b i 1 b i 1 10 p 48 x 1 else x 0 for j 0 b j 0 j ...