#include <stdio.h>
int min=0;
int find_min_index(int numbers[], int length)
{
for(int a=0; a<length; a++)
{
if(numbers[a]<min)
min=numbers[a];
}
int main( int argc, char* argv[])
{
int data_array_1 = ( 1, 3, 5, 7, 9, 11};
int data_array_2 = ( 2, -4, 6, -8, 10, -12, 14, -16};
int data_array_3 = ( 6, 4, 1, 4, 5, 3, 2};
printf("Min's index array1 is: %d\n", find_min_index(array1, 6));
printf("Min's index array2 is: %d\n", find_min_index(array2, 9));
printf("Min's index array3 is: %d\n", find_min_index(array3, 7));
return 0;
}
我得到的输出是:
Min的索引array1为:6
敏的索引array2为:9
敏的索引array3为:7
而我期望的输出是:
Min的索引array1为:1
闵的索引array2是:-16
敏的索引array3为:1
大家可以帮助我获得适当的结果。
这是解决方案-
#include <stdio.h>
int find_min_index(int numbers[], int length)
{
int a; // bring a and min inside function
int min=numbers[0]; // initialize min with array's 1st element
for(a=1; a<length; a++)
{
if(numbers[a]<min)
min=numbers[a];
}
return min; //return min from function
}
int main( int argc, char* argv[])
{
int data_array_1[]={ 1, 3, 5, 7, 9, 11}; //declare and initialize array
int data_array_2[]={ 2, -4, 6, -8, 10, -12, 14, -16};
int data_array_3[]={ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 ,0};
printf("Min's index array1 is: %d\n", find_min_index(data_array_1, 6)); // calling function in printf
printf("Min's index array2 is: %d\n", find_min_index(data_array_2, 8));
printf("Min's index array3 is: %d\n", find_min_index(data_array_3, 11));
// printf("Min's index array3 is: %d\n", find_min_index(data_array_3, 10)); // in case you need this output as 1
return 0;
}
注意-请勿min
使用0
as数组作为+ve
元素初始化而0
不会给出正确的输出。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句