首先,我只是想说我是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.
答案 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()函数中的start
和jump
的值也会更改。
答案 4 :(得分:0)
是否有人认为for
循环中的第三个表达式不必须是i++
?该特定表达式将i
增加1.如果您想将其增加一些其他数量(例如,“跳跃元素”),您可以使用什么表达式?