基于visual Studio2013解决C语言竞赛题之0505选数
题目
解决代码及点评
/************************************************************************/ /* 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[i]); } printf("\n"); } int FindMax5(int *arr,int n) { int max=0; for (int i=1;i<n;i++) // 寻找最大值 { if (arr[max]<arr[i]) // 如果当前值比最大值还大,那么记录更大的值 { max=i; } } return max; } int FindMin5(int *arr,int n) { int min=0; for (int i=1;i<n;i++) // 寻找最小值,简单的定义个变量保存最小值 { if (arr[min]>arr[i]) // 如果当前值比最小值还小,那么保存更小的值 { min=i; } } return min; } void main() { int arr[100]={0}; for (int i=0;i<100;i++) // 产生100个随机数 { arr[i]=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"); }
代码下载及其运行
代码下载链接:
http://download.csdn.net/detail/yincheng01/6651951
解压密码为c.itcast.cn
下载解压后用VS2013打开工程文件
点击 “本地Windows调试器” 执行
程序运行结果