我正在解决Project Euler Problem#3。我想我上半场已经完成了,但我不确定如何在我的一系列因素中找到最大的数字。有没有办法在函数中使用数组作为参数?
#include <iostream>
#include <cmath>
#include <ctime>
bool isPrime(int);
bool isPrime(int x){
if(x==2){
return true;
}
if(x%2==0){
return false;
}
for(int i=0;i<x;i++){
if(x%i==0){
return false;
}
}
}
int prime_factors(int x){
int j = 0;
int arry[900];
for(int i = 0; i<x;i++){
if(isPrime(i)==true){
if(x%i==0){
arry[j]=i;
j++;
}
}
}
}
答案 0 :(得分:1)
有很多方法可以传递你的阵列。最符合您当前代码的将是:
int largest_prime_index(int* array, int length)
{
if (length < 1)
{
return -1;
}
int largest_index = 0;
for (int i = 1; i < length; i++)
{
if (array[i] > array[largest_index])
{
largest_index = i;
}
}
return largest_index;
}
注意,如果您使用的是arry
变量,则会j
使用length
而不是900
。