c ++简单函数添加数字

时间:2011-03-11 00:25:55

标签: c++ function

首先,我只是想说我是c ++的新手,而且我想解决我遇到的问题,但到目前为止还没有运气。代码是:

const int MAX = 100;

void funkcija(int niz[], int n, int& poc, int& sko)
{
    for(int i = 0; i < n; i++)
    {
        niz[i] = poc + sko;
    }
}

int main()
{
int niz[MAX];
int start, jump;

cout <<"Start element: ";
cin >> start;

cout <<"Jump element: ";
cin >> jump;

funkcija(niz, MAX, start, jump);

cout << "Ispis pocevsi od " << start << " sa skokom od " << jump << " jest: " << niz[1]<< endl;
getchar();
return 0;
}

该计划应该做的是:它询问我的起始编号。让我们说我选择15。然后它要求跳号。我选择11.打印应该是“15,26,37,48,59,70,81,92”。 (15 + 11 = 26,26 + 11 = 37 ......)它应该打印所有数字直到100,这是我的MAX。如果我将MAX更改为1000,则应将所有数字打印到1000.

5 个答案:

答案 0 :(得分:2)

您始终在表格元素中设置相同的值:poc + sko

您想将poc放入niz[0]然后

for(int i = 1; i < n; i++) {
    nit[i] = niz[i-1] + sko;
}

答案 1 :(得分:1)

问题在于for循环。循环不会更新序列中的下一个数字。

for(int i = 0; i < n; i++)
{
    niz[i] = poc ;
    poc += sko; // This should be added.
}

此外,情况有误。它应该是poc < n。当您将n作为全局变量时,为什么需要传递MAX

答案 2 :(得分:1)

for(int i = 0; i < n; i++)
{
    niz[i] = poc + sko;
}

你说你想要“15 + 11 = 26,26 + 11 = 37 ......”。

你能想到为什么不这样做吗?

对于输出,您只输出数组中的单个元素(第二个元素):

<< niz[1]

答案 3 :(得分:0)

如果我理解你想要100个数字,代码应如下所示:

void funkcija(int niz[], int n, int poc, int sko)
{
    for(int i = 0; i < n; i++)
    {
        niz[i] = poc;
        poc = poc + sko;
    } 
}

请注意,我从参数中删除了&符号(&)。添加这些参数会使它们成为引用参数,这意味着在函数返回后,main()函数中的startjump的值也会更改。

答案 4 :(得分:0)

是否有人认为for循环中的第三个表达式必须是i++?该特定表达式将i增加1.如果您想将其增加一些其他数量(例如,“跳跃元素”),您可以使用什么表达式?