반응형

C++ 기초플러스 4판 8장 : 프로그래밍 연습 5번

#include <iostream>
#include <cstring>
using namespace std;

char* maxn(char *p_arr[], int num);

template <typename T>
T maxn(T arr[], int num);

 

int main(){
 int maxi[6];
 double maxd[4];
 char *p_arr[5]; // 단순 포인터변수들이 들어가는 배열

 for(int i = 0; i < 6 ; i++){ // int 6개 받기
  cout << i+1 << "th int input! : ";
  cin >> maxi[i];
 }
 cout << "\n";
 
 for(i = 0; i < 4 ; i++){ // double 4개 받기
  cout << i+1 << "th double input! : ";
  cin >> maxd[i];
 }
 cout << "\n";

 for(i = 0; i < 5 ; i++){ // 문자열 5개 받기
  p_arr[i] = new char[20];
  cout << i+1 << "th string input! : ";
  cin >> p_arr[i];
 }
 cout << "\n";

 cout << maxn(maxi,6) << " : int max\n";
 cout << maxn(maxd,4) << " : double max \n";
 cout << maxn(p_arr,5) << " : string max \n";
 
 delete [] *p_arr;

 return 0;
}

template <typename T>
T maxn(T arr[], int num){
 T max = arr[0];
 for(int i = 1; i < num ; i++){
  if(max < arr[i]) max = arr[i];
 }
 return max;
}

char* maxn(char *p_arr[], int num){
 char *max = p_arr[0];
 for(int i = 1; i < num ; i++){
  if(strlen(max) < strlen(p_arr[i]))
   strcpy(max, p_arr[i]);
 }
 return max;
}



 

반응형
Posted by Rainfly
l