2013-10-17 35 views
2

我有印號碼列表:不包括最後一個項目之後逗號在打印清單

1:1,
2:1,2,
3:1,3 ,

如何在每行上不包含最後一個逗號?檢查

for (int i = 1; i <= x; ++i) 
    { 
    cout << i << ": "; 
    for (int j = 1; j <= i; ++j) 
    { 
     if (i % j == 0) 
     { 
     cout << j << ", "; 
     } 
    } 
    cout << endl; 
    } 
+2

玩請與我們分享你的代碼... –

+0

你是如何生產這些數字呢? – codedude

+1

用剪刀剪掉它?請張貼一些代碼。 – 2013-10-17 03:43:21

回答

2

試試這個:

for (int i = 1; i <= x; ++i) 
{ 
cout << i << ": "; 
for (int j = 1; j <= i; ++j) 
{ 
    if (i==j) { 
     cout << j;  
    } else if (i % j == 0) { 
     cout << j << ", "; 
    } 
} 
cout << endl; 
} 
+0

這看起來不錯。謝謝。 – ghal

+0

很高興幫助!沒問題 – codedude

1

嘗試,如果數字是最後不便,如:

for (int i = 1; i <= x; i++) 
{ 
    cout << i << ": "; 
    for (int j = 1; j <= i; j++) 
     if (!(i % j)) 
     { 
      if (j != i) 
       cout << j << ", "; 
      else 
       cout << j << endl; 
     } 
} 
+0

已添加代碼。不能使用數組。 – ghal

+0

請嘗試下面的代碼。 – Necronomicron

+0

我犯了一個錯誤,已經糾正它。 – Necronomicron

0
for (int i = 1; i <= x; ++i) 
{ 
    cout << i << ": "; 
    for (int j = 1; j <= i; ++j) 
    { 
     if (i % j == 0) 
     { 
      cout << j; 
      if (i != j) { 
       cout << ", "; 
      } 
     } 
    } 
    cout << endl; 
} 
0

因爲你總是輸出1,開始在2

檢查
for (int i = 1; i <= x; ++i) 
{ 
    cout << i << ": 1"; 
    for (int j = 2; j <= i; ++j) 
    { 
     if (i % j == 0) 
     { 
      cout << ", " << j; 
     } 
    } 
    cout << endl; 
} 

或者,您可以用隔板

for (int i = 1; i <= x; ++i) 
{ 
    char sep = ':' 
    cout << i; 
    for (int j = 1; j <= i; ++j) 
    { 
     if (i % j == 0) 
     { 
      cout << sep << " " << j; 
      sep = ','; 
     } 
    } 
    cout << endl; 
} 
相關問題