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">/************************************************************************/
- /*
- 5. 输入N个数到数组中,选出其中最大的数和最小的数,并分别将它们与最前面和最后面的数互换
- */
- /************************************************************************/
- #include <stdio.h>
- #include <stdlib.h>
- void swap5(int * arr,int num1,int num2) // 交换两个值
- {
- arr[num1]^=arr[num2]; // 这里用异或来进行交换,可以省略定义中间变量
- arr[num2]^=arr[num1];
- arr[num1]^=arr[num2];
- }
- void printfArr5(int *arr ,int n)
- {
- for (int i=0;i<n;i++)
- {
- printf("%4d",arr);
- }
- printf("\n");
- }
-
- int FindMax5(int *arr,int n)
- {
- int max=0;
- for (int i=1;i<n;i++) // 寻找最大值
- {
- if (arr[max]<arr) // 如果当前值比最大值还大,那么记录更大的值
- {
- max=i;
- }
- }
- return max;
- }
- int FindMin5(int *arr,int n)
- {
- int min=0;
- for (int i=1;i<n;i++) // 寻找最小值,简单的定义个变量保存最小值
- {
- if (arr[min]>arr) // 如果当前值比最小值还小,那么保存更小的值
- {
- min=i;
- }
- }
- return min;
- }
-
- void main()
- {
- int arr[100]={0};
- for (int i=0;i<100;i++) // 产生100个随机数
- {
- arr=rand()%100;
- }
- printfArr5(arr,100);
- int min=FindMin5(arr,100); // 寻找最小的数
- int max=FindMax5(arr,100); // 寻找最大的数
- printf("最大的数:%4d\n",arr[max]);
- printf("最小的数:%4d\n",arr[min]);
- swap5(arr,min,99); // 最小数交换到末尾
- swap5(arr,max,0); // 最大数交换头
- printfArr5(arr,100);
- system("pause");
- }</pre><br><br></pre></pre>
|
|