用数组名作为函数参数的4种方式(即形参数组名、实参数组名;形参数组名、实参指针变量;形参指针变量、实参数组名;形参指针变量、实参指针变量)实现输出某一维数组的最大值及其所在数组的位置。(该题可在主函数中选择不同的函数调用方式)
用数组名作为函数参数的4种方式(即形参数组名、实参数组名;形参数组名、实参指针变量;形参指针变量、实参数组名;形参指针变量、实参指针变量)实现输出某一维数组的最大值及其所在数组的位置。(该题可在主函数中选择不同的函数调用方式)
#include <stdio.h>
#define ARRAY_SIZE 10
int index_of_max_in_array(int a[])
{
int index = 0, i;
int max = a[0];
for (i = 1; i < ARRAY_SIZE; ++i)
{
if (a[i] > max)
{
max = a[i];
index = i;
}
}
return index;
}
int index_of_max_in_pointer(int *p)
{
int index = 0, i;
int max = *p;
for (i = 1; i < ARRAY_SIZE; ++i)
{
if (*(p + i) > max)
{
max = *(p + i);
index = i;
}
}
return index;
}
int main()
{ int a[ARRAY_SIZE], index_of_max, i;
int *p;
for(i = 0; i < ARRAY_SIZE; ++i)
{
printf("请输入%d个数中的第%d个数:", ARRAY_SIZE, i);
scanf("%d", &a[i]);
}
index_of_max = index_of_max_in_array(a);
printf("Case 1 - 形参数组名、实参数组名: 最大数是:%d,它的下标是:%d;\n", a[index_of_max], index_of_max);
p = a;
index_of_max = index_of_max_in_array(p);
printf("Case 2 - 形参数组名、实参指针变量: 最大数是:%d,它的下标是:%d;\n", a[index_of_max], index_of_max);
index_of_max = index_of_max_in_pointer(a);
printf("Case 3 - 形参指针变量、实参数组名: 最大数是:%d,它的下标是:%d;\n", a[index_of_max], index_of_max);
index_of_max = index_of_max_in_pointer(p);
printf("Case 2 - 形参指针变量、实参指针变量:最大数是:%d,它的下标是:%d;\n", a[index_of_max], index_of_max);
return 0;
}
// Outpuut
请输入10个数中的第0个数:50
请输入10个数中的第1个数:37
请输入10个数中的第2个数:89
请输入10个数中的第3个数:1
请输入10个数中的第4个数:100
请输入10个数中的第5个数:63
请输入10个数中的第6个数:15
请输入10个数中的第7个数:72
请输入10个数中的第8个数:48
请输入10个数中的第9个数:8
Case 1 - 形参数组名、实参数组名: 最大数是:100,它的下标是:4;
Case 2 - 形参数组名、实参指针变量: 最大数是:100,它的下标是:4;
Case 3 - 形参指针变量、实参数组名: 最大数是:100,它的下标是:4;
Case 2 - 形参指针变量、实参指针变量:最大数是:100,它的下标是:4;