暖冬的源码分享

 找回密码
 立即加入

QQ登录

只需一步,快速开始

搜索
热搜: 巧借
查看: 10336|回复: 0

[九度OJ] 互换最大最小数

[复制链接]
发表于 2013-2-8 15:57:07 | 显示全部楼层 |阅读模式
题目描述:                                                  输入一个数n,然后输入n个数值各不相同,调换数组中最大和最小的两个数,然后输出。
输入:                                                  测试数据有多组,输入n(1<=n<=20),接着输入n个数。

输出:                                                  对于每组输入,输出交换后的结果。
样例输入:
2
1 3                                                                           
样例输出:
3 1

下述代码测试结果貌似没问题,但是已通过 AC,忘记了是多组测试数据,少了 while 循环接收数据

  1. #include <iostream>

  2. void max_min (int * x, int counter);

  3. int main()
  4. {
  5.         using std::cin;
  6.         using std::cout;
  7.         using std::endl;

  8.         int n;
  9.         while (cin >> n)
  10.         {
  11.                 int * p_int = new int [n];
  12.                 for (int i = 0; i < n; i ++)
  13.                 {
  14.                         cin >> p_int[i];
  15.                 }

  16.                 if (n < 2)
  17.                 {
  18.                         cout << p_int[0];
  19.                         cout << endl;
  20.                         delete p_int;
  21.                         return 0;
  22.                 }

  23.                 max_min(p_int, n);

  24.                 for (int i = 0; i < n; i ++)
  25.                 {
  26.                         cout << p_int[i];
  27.                         if (i < (n - 1))
  28.                         {
  29.                                 cout << " ";
  30.                         }
  31.                 }
  32.                 cout << endl;

  33.                 delete p_int;
  34.         }

  35.         return 0;
  36. }

  37. void max_min(int * x, int counter)
  38. {
  39.         int max_i = 0, min_i = 0;
  40.         int max_int, min_int;
  41.         max_int = min_int = x[0];
  42.         for (int i = 1; i < counter; i ++)
  43.         {
  44.                 if (x[i] > max_int)
  45.                 {
  46.                         max_i = i;
  47.                         max_int = x[i];
  48.                 }
  49.                 else if (x[i] < min_int)
  50.                 {
  51.                         min_i = i;
  52.                         min_int = x[i];
  53.                 }
  54.         }

  55.         int temp;
  56.         temp = x[max_i];
  57.         x[max_i] = x[min_i];
  58.         x[min_i] = temp;
  59. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

手机版|小黑屋|享码网 ( 京ICP备12003721号 )

GMT+8, 2024-3-29 04:39

Powered by Discuz! X3.5

Copyright © 2001-2021 Tencent Cloud.

快速回复 返回顶部 返回列表