以下程序是用递归方法求数组中的最大值及其下标值。请填空。 #define M 10 void findmax(int *a,int n,int i,int *pk) { if(i<n) { if(a[i]>a[ *pk]

admin2009-02-15  71

问题 以下程序是用递归方法求数组中的最大值及其下标值。请填空。
   #define M 10
    void findmax(int *a,int n,int i,int *pk)
   { if(i<n)
        { if(a>a[ *pk])【  】;
                     findmax(a,n,i+1,&(*pk));}}
   main()
   { int a[M],j,n=0;
     printf("\nEnter%d data;\n"  ,M);
     for(i=0;i<M;i++)scanf("%d"  ,a+i);
     findmax(a,M,0,&n);
     printf("  The maxinum is:%d\n"  ,a[n]);
     printf("  It’s index is;%d\n"  ,n);}

选项

答案*pk=a[i]

解析 通过参数传递,findmax函数接收到4个参数,分别是数组a(需要对其中的数据按照题目的要求进行计算)、10(数组a中的元素个数)、0(数组a的起始位置)、指针变量n(对数组a中的元素进行遍历)。我们了解了这些参数的作用后,再对递归调用的函数进行分析,就不难得出结论了。注意:通过对本例中递归函数的分析掌握递归算法的执行原理。
转载请注明原文地址:https://kaotiyun.com/show/7JXp777K
0

最新回复(0)