largest.cpp

来自「经典c++程序的实现」· C++ 代码 · 共 57 行

CPP
57
字号
#include <iostream.h>
#include <stdlib.h>

#include "book.h"

typedef int ELEM;
#include "swap.h"

void permute(int *array, int n) {
  for (int i=n; i>0; i--)
    swap(array[i-1], array[Random(i)]);
}

int largest(int* array, int n) { // Find largest value
  int currlarge = 0;             // Store largest value seen
  for (int i=0; i<n; i++)        // For each array element
   if (array[i] > currlarge)     //   If this is largest
      currlarge = array[i];      //     Remember it
  return currlarge;              // Return largest value
}

int main(int argc, char** argv) {
  int* A; // The array
  int n;
  int i;

  if(argc != 2) {
    cout << "Usage: largest <size_of_permutation>\n";
    exit(-1);
  }

  n = atoi(argv[1]);
  if ((A = (int *)calloc(n, sizeof(int))) == NULL) {
    cout << "Error: Unable to allocate space for permutation array\n";
    exit(-1);
  }

  for (i=0; i<n; i++)
    A[i] = i;

  Randomize();

  permute(A, n);

  for (i=0; i<n; i++) {
    cout << A[i];
    if (!((i+1)%10))
      cout << "\n";
     else
       cout << "  ";
   }
   cout << "\n";
 
   cout << "The largest value is " << largest(A, n) << "\n";
   return 0;
 }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?