TA的每日心情 | 开心 2014-6-18 08:29 |
---|
签到天数: 14 天 [LV.3]偶尔看看II
滴水大师
 
- 积分
- 2345
|
题目
解决代码及点评
- <pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"></pre><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code">/************************************************************************/
- /*
- 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);
- }
- int num=GO(arr,5); // 返回最大值的下标
- printf("最大元素位置:%d最大元素为:%f",num,arr[num]);
- system("pause");
- }</pre><br><br></pre></pre>
|
|