2017-09-02 46 views
-4

我对C++很陌生,目前我正在设计一个计算Euklid算法的计算器。有没有办法在while循环中将数字添加到“缓冲区”?

无论如何,我需要帮助的是我如何可以将最终数字添加到每个循环的某种数组。

让例如说我把数字1128和16然后我的程序将给出这个输出

1128 % 16 = 70 + 8 
70 % 16 = 4 + 6 
4 % 16 = 0 + 4 

theese三行打印,一个在时间,对于每一个循环。我想要的是将最后的数字(8,6和4)添加到数组中。我将如何做到这一点?

+1

您是否在寻找['标准::矢量 ::的push_back()'](http://en.cppreference.com/w/cpp/container/vector)? – user0042

+2

你到目前为止尝试过什么? – pmaxim98

+2

是的。标准库中有很多类模板[容器](http://en.cppreference.com/w/cpp/container)。考虑到第一条评论。 – Ron

回答

1

使用Vector而不是数组,希望这有助于!

#include <iostream> 
#include<vector> 
using namespace std; 

int main() 
{ 
    int a=1128,b=16,i; 
    vector<int>arr; 
    while(a>b) 
    { 
     cout<<a/b<<" "<<a%b<<endl; 
     arr.push_back(a%b); 
     a/=b; 
    } 
    cout<<a/b<<" "<<a%b<<endl; 
    arr.push_back(a%b);    // Case: When a<=b in Vector 
    for(i=0;i<arr.size();i++) 
     cout<<arr[i]<<" ";   // Array i.e 8 6 4 
    return 0; 
} 

Output: 
70 8 
4 6 
0 4 
8 6 4 // Array 
+1

首选[cppreference.com](http://en.cppreference.com/w/cpp/container/vector)到上述网站。更可靠的信息来源。 – Ron

+0

@ishpreet但gcd(1128,16)= 8 ...? – pmaxim98

+0

@ pmaxim98该程序不计算** Gcd **。再看看你会很快找到。提示:** b **在每次循环迭代中都不会改变。 – Ishpreet

相关问题