我有一个函数,要求用户将10个整数输入到数组中,然后找到数组的最大值。
int largestPos(int array[], int size, int index) {
int k, maxVal = 0;
printf("Enter a starting index: ");
scanf("%d", &index);
for (k = index; k < size; k++){
if (maxVal < array[k]){
maxVal = array[k];
}
}
printf("The maximum value is %d at position %d \n", maxVal, array[maxVal]);
return 0;
}
最大值计算正确。但是,当我尝试找到最大值的位置时,我得到了一个疯狂的数字。我找到最大值位置的方式有什么问题?
答案 0 :(得分:2)
bPromise = a.relation('b').query().find();
cPromise = a.relation('c').query().find();
combinedPromise = Promise.all([bPromise, cPromise]);
combinedPromise.then(results => {
// fetch c promise with calling get method of parse API...
// fetch b non relation data with calling to get method of parse API
// now a variable named filledObject is filled with all the data
from c and b except of the d relation data, right after i insert
it into the state
b.relation('d').query.find().then(results => {
// how i can insert fetched data from results into filledObject?
}
}
答案 1 :(得分:1)
仅当所有整数均大于零时,以下内容才会找到最大值。如果它们都是负整数,则此处的最大值将为0。
int array[5] = {-234, -133, -581, -8, -41};
int maxVal = 0;
for(i = 0; i < size; ++i) {
if(array[i] > maxVal) {
maxVal = array[i];
}
}
相反,您想使用数组中的第一个元素初始化maxVal,然后将其他每个元素与其进行比较(跳过for循环中的第一个元素,因此您无需将maxVal与自身进行比较)。这将使索引3的最大值为-8。
int array[5] = {-234, -133, -581, -8, -41};
// initialize maxVal to first element inside the array
int maxVal = array[0];
int pos = 0;
for(i = 1; i < size; ++i) {
if(array[i] > maxVal) {
maxVal = array[i];
// Find the index of the max value
pos = i;
}
}
答案 2 :(得分:-1)
假设您有以下数组:{100,99,98,97,96,95,94,93,92,91,90},最大值为100。您的代码尝试打印array [maxValue]从而将数组[100]。
也许您不应该将值保存到maxValue中,而应该将其保存到正确的位置