|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
从数组中找出最大和第二大元素,并把它们分别储存到由largest和second_largest指向的变量中
- //从数组中找出最大和第二大元素,并把它们分别储存到由largest和second_largest指向的变量中
- #include<stdio.h>
- int main()
- {
- void find_two_largest(const int *a, int n, int *largest, int *second_largest);
- int i, *a, *L, *SL, arr[10];
- for (i = 0;i < 10;i++)
- {
- scanf_s("%d", &arr[i]);
- }
- a = arr;
- if (a[0]>a[1])
- {
- L = &a[0];
- SL = &a[1];
- }
- else
- {
- L = &a[1];
- SL = &a[0];
- }
- find_two_largest(a, 10, L, SL);
- }
- void find_two_largest(const int *a, int n, int *largest, int *second_largest)
- {
- int i, s;
- for (i = 1;i <= n;i++, a++)
- {
- if (*largest < *a)
- {
- if(*second_largest < *largest)
- *second_largest = *largest;
- *largest = *a;
- }
- else if (*second_largest < *a)
- {
- s = *second_largest;
- *second_largest = *a;
- if (*second_largest == *largest)
- *second_largest = s;
- }
- }
- if (*second_largest > *largest) // 最后再次确认
- {
- s = *second_largest;
- *second_largest = *largest;
- *largest = s;
- }
- printf("largest = %d, second_largest = %d\n",*largest,*second_largest);
- }
复制代码
|
|