繁体   English   中英

c ++简单函数添加数字

[英]c++ simple function to add numbers

首先,我只是想说我是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。

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

你想把poc放在niz[0]

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

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

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

而且,条件是错误的。 它应该是poc < n MAX作为全局变量时,为什么需要传递n

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

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

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

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

<< niz[1]

如果我理解你想要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值也会发生变化。

是否想过任何人,在第三个表达式for循环并不一定是i++ 该特定表达式将i递增1.如果您想将其增加一些其他数量(例如,“跳跃元素”),您可以使用什么表达式?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM