2017-11-04 211 views
-3

因此,我朋友的程序應該找到第三個乘法,然後用逗號數。而不是最後一個。我不想在最後一個數字/值後輸入逗號,我該如何刪除它(C++,loop)

int a; 
int b; 

cout<< "First Number = "; 
cin>>a; 
cout<< "Last Number = "; 
cin>>b; 

if(a<=b) 
{ 
    for(a;a<=b;a++) 
    { 
     if(a%3 == 0 && a%2 != 0) 
     { 
      cout<<a; 
     } 
     if(a<b && a%3==0 && a%2 != 0) 
     { 
      cout<< " , "; 
     } 
     else if(a==b) 
     { 
      cout<< "."; 
     } 
    } 
} 

後,我輸入

一個= 1

B = 20

這就是我預期

3,9 15.

這就是我實際得到的

3,9,15,。

之前THX,希望你們理解

+4

的可能的複製[打印用逗號C++列出](https://stackoverflow.com/問題/ 3496982 /打印列表與逗號-c) – Barmar

+1

檢查如果一個== b之前cout <<「,」 –

+0

這個答案可能有所幫助https://stackoverflow.com/questions/36137997/convert-vectorunsigned-char -1-2-3 -in-string-1-2-3-as-digits/36138229#36138229 – Galik

回答

1

我會做這樣的事情:

char const* sep = ""; // item separator (nothing to begin with) 

for(a;a<=b;a++) 
{ 
    if(a%3 == 0 && a%2 != 0) 
    { 
     cout << sep << a; // output the separator before the next value 
     sep = ", "; // now change it to a comma 
    } 
} 

cout << "."; // finish with a full stop 
+0

它給了我「錯誤」sep'不命名類型「和」錯誤'sep'未在此範圍內聲明「 – FcIp3

+0

@ FcIp3也許您使用的是舊版本的標準。我編輯了代碼,所以現在應該有希望工作。 – Galik

+0

哇,謝謝,現在它的工作 – FcIp3

相關問題