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