C ++最大数字验证

时间:2010-04-14 01:32:29

标签: c++

嘿伙计们,我被分配创建一个程序,创建由10个随机整数组成的n个数组。程序应该对所有整数求和并显示结果。之后,它必须验证哪个总和最大,并且必须显示该数组和结果。我有麻烦完成它,并希望得到一些帮助! 再次感谢。 到目前为止,这是我的代码:

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double random(unsigned int &seed);
unsigned int seed = 5;
void generateData(int set[10]);
int sumData(int set[10]);
void checkData(int sumResult, int arrayNumber);
int main (int argc, char * const argv[]) {
    int arrayNumber, sumResult; 
    int set[10];
    do {
        cout << "Number of Arrays to Compare: " << endl;
        cin >> arrayNumber;
    } while (arrayNumber < 0);
    for (int i = 0; i < arrayNumber; ++i) {
        generateData(set);
        sumResult = sumData(set);
        cout << "Sum --> " << sumResult << endl;
        checkData(sumResult, arrayNumber);
    }
    return 0;
}

double random(unsigned int &seed) {
    const int MODULUS = 15749;
    const int MULTIPLIER = 69069;
    const int INCREMENT = 1;
    seed = ((MULTIPLIER * seed) + INCREMENT) % MODULUS;
    return double(seed) / double(MODULUS);
}

void generateData(int set[10]) {
    for (int i = 0; i < 10; ++i) {
        set[i] = int (5 + 6 * random(seed));
        cout << set[i] << " || ";
    }
}

int sumData(int set[10]) {
    int sumTotal = 0;
    for (int i = 0; i < 10; ++i)
        sumTotal = sumTotal + set[i];
    return sumTotal;
}

void checkData(int sumResult, int arrayNumber) {
    int largerNumber;
    int tempSet[2];
    for (int i = 0; i < arrayNumber; ++i) {
        if (sumResult > largerNumber) {
            tempSet[i] = sumResult;
        }
    }
}

3 个答案:

答案 0 :(得分:2)

您的问题是

  

创建一个程序,创建由10个随机整数组成的n个数组....

  • 但我只能看到 一个 int 大小为10的数组。你应该做什么 正在做的是分配一个2D数组 大小arrayNumber X 10,称之为 set
  • 另外你应该分配1D数组 大小arrayNumber名为say, sumArray保留每个的总和 阵列。因此sumArray[i]将是ithset数组的所有元素的总和。
  • 接下来,您会找到最大元素及其元素 maxIndex
  • 中的索引(例如sumArray
  • 在索引maxIndex打印数组 在set中,这将是数组 最高金额。

答案 1 :(得分:0)

要创建整数数组的数组,一种简单的方法是执行以下操作:

int **createArrayOfArrays(int number, int lengthOfEach)
{
    int **array_of_arrays = (int**) malloc(sizeof(int*) * number);
    int ix;
    for(ix = 0; ix < number; ix++)
    {
       array_of_arrays[ix] = (int*) malloc(sizeof(int) * lengthOfEach);
    }
    return array_of_arrays;
}

不要忘记在最后释放所有内存,你需要释放每个数组和数组数组(每个malloc一个)。

答案 2 :(得分:0)

大小为10的数组,每个都可以用c#

这样做
int n;
      n=  Convert.ToInt32(Console.ReadLine());


    int [,] mat=new int [n ,10];


    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < 10; j++)
            mat[i,j] = 0;

    }