
题目
解决代码及点评
/************************************************************************/ /* 14. 编一个程序,读入具有5个元素的实型数组,然后调用一个函数, 递归地找出其中的最大元素,并指出它位置 */ /************************************************************************/ #include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> int GO(float * arr,int num) { if (num==1) // 如果数组长度只有1 { return 0; // 那么最大值的下标是0 } else { if (arr[num-1]>arr[GO(arr,num-1)]) // 最后一个元素大于,前面num-1的最大值 { return num-1; // 那么返回最后一个元素 } else return GO(arr,num-1); // 否则返回前面num-1个元素的最大元素 } } void main() { float arr[5]={0}; for (int i=0;i<5;i++) // 从键盘输入值 { scanf_s("%f",&arr[i]); } int num=GO(arr,5); // 返回最大值的下标 printf("最大元素位置:%d最大元素为:%f",num,arr[num]); system("pause"); }
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果