Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c++:我想用数组做一个算术级数,但它给了我凌乱的代码_C++ - Fatal编程技术网

c++:我想用数组做一个算术级数,但它给了我凌乱的代码

c++:我想用数组做一个算术级数,但它给了我凌乱的代码,c++,C++,要求用户输入ar1[0]和inc。第一个ar1[0]由用户输入结算,其余由inc增加。因此,如果我输入4 3,它应该返回4 7 10 13 16。我的结果是这样的: 我知道fillArray函数有问题,但我不知道如何修复它。谁能告诉我解决办法吗?谢谢是的,您的函数fillArray有问题。它假设第一个元素已初始化,实际上是,但不会按升序初始化其他元素,因为您总是将inc添加到第一个元素的值中。此外,它还打印出ar[size],这在每一步都是超出范围的,即输出中的第一个奇怪数字。您可以使用以下方

要求用户输入ar1[0]和inc。第一个ar1[0]由用户输入结算,其余由inc增加。因此,如果我输入4 3,它应该返回4 7 10 13 16。我的结果是这样的:


我知道fillArray函数有问题,但我不知道如何修复它。谁能告诉我解决办法吗?谢谢

是的,您的函数fillArray有问题。它假设第一个元素已初始化,实际上是,但不会按升序初始化其他元素,因为您总是将inc添加到第一个元素的值中。此外,它还打印出ar[size],这在每一步都是超出范围的,即输出中的第一个奇怪数字。您可以使用以下方法进行修复:

#include<iostream>  
using namespace std;

//prototype
void fillArray(int[], int, int);
void printArray(int[], int);

int main()
{
srand(time(0));  // initialize random number generator

const int size = 5, SIZE=10;
int ar1[size], ar2[size],inc;

cout << "Enter the first value and increment for ar1: ";
cin >> ar1[0] >> inc;
cout << "Enter the first value and increment for ar2: ";
cin >> ar2[0] >> inc;




cout << "(1) ar1:\n";
fillArray(ar1, size, inc);
printArray(ar1, size);



system("pause");
return 0;

}
void fillArray(int ar[], int size, int inc)
{
for (int i = 1; i < size; i++)
{
    ar[i] = ar[0] + inc;
    cout << ar[size];
}
}
void printArray(int ar[], int size)
{
for (int i = 0; i < size; i++) {
    cout << ar[i] << ' ';
}
cout << endl;
}
或者您也可以决定将第一个值作为参数传递

我假设您想要使用size,即使您还声明了另一个名为size的类似变量,并使用不同的值。您还应该考虑使用STD::向量,而不是数组作为一个更安全的更实用的选项。
最后,在代码中,您要求用户输入inc两次,并在使用前覆盖它。

听起来您可能需要学习如何使用调试器逐步完成代码。有了一个好的调试器,您可以逐行执行您的程序,并查看它偏离预期的地方。这是一个必要的工具,如果你要做任何编程。进一步阅读:
void fillArray(int ar[], int size, int inc)
{
    for (int i = 1; i < size; i++)
    {
        ar[i] = ar[i-1] + inc;
    }
}