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"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code">/************************************************************************/
- /*
- 22. 有一批实数,用零作终止标记。请编程序找出这批数中的最大值及最小值,
- 并输出该最大值数是这批数中的第几个数(若最大值数多次出现,只打印出第一个的位置)。
- 又问:若打印出每个最大值数的位置,程序应如何修改?
-
-
-
- */
- /************************************************************************/
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <string.h>
- int FindMin18(float * arr,int n)
- {
- int min=0;
- for (int i=1;i<n;i++)
- {
- if (arr[min]>arr)
- {
- min=i;
- }
- }
- return min;
- }
- int FindMax18(float * arr,int n)
- {
- int max=0;
- for (int i=1;i<n;i++)
- {
- if (arr[max]<arr)
- {
- max=i;
- }
- }
- return max;
- }
- void FindMaxMax18(float * arr,int n)
- {
- int max=0;
- for (int i=1;i<n;i++)
- {
- if (arr[max]<arr)
- {
- max=i;
- }
- }
- for (int j=0;j<n;j++)
- {
- if (arr[j]==arr[max])
- {
- printf("%5d",j+1);
- }
- }
- }
- //用一个数组保存相应的个数
- void main()
- {
- float arr[100]={0};// 设置最长输入为100个
- int i=0;
- while(1)
- {
- scanf_s("%f",&arr);
- float temp=arr;
- if (temp==0)
- {
- break;
- }
- i++;
- }
- for (int j=0;j<i;j++)
- {
- printf("%5f",arr[j]);
- }
- printf("\n");
- printf("最大值数为%f第一次出现位置为%d\n",arr[FindMax18(arr,i)],FindMax18(arr,i)+1);
- printf("最小值数为%f\n",arr[FindMin18(arr,i)]);
- printf(" 打印出最大值所有位置\n");
- FindMaxMax18(arr,i);
- system("pause");
- }</pre><br></pre></pre></pre>
|
|