[英]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()函数中的start
和jump
值也会发生变化。
是否想过任何人,在第三个表达式for
循环并不一定是i++
? 该特定表达式将i
递增1.如果您想将其增加一些其他数量(例如,“跳跃元素”),您可以使用什么表达式?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.