Advertisement
stiansjogren

Algoritmer og datastrukturer, Øving 7, NTNU

Oct 12th, 2014
377
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.55 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <sstream>
  4. #include <cstdlib>
  5. #include "ctype.h"
  6. using namespace std;
  7.  
  8. char join(char a, char b);
  9. char join(int a, int b);
  10. int main() {
  11.    
  12.     std::vector<char>letr;
  13.     std::vector<int> numb;
  14.     std::stringstream ss;
  15.     std::string s;
  16.     bool l =0;
  17.     char a, b, forrige;
  18.     int cnt=0;
  19.     int  tip;
  20.     while (getline(cin,s)){
  21.         std::stringstream ss(s);
  22.        
  23.         while(ss >> a)
  24.         {
  25.         if (isalpha(a)==1024)
  26.         {
  27.             letr.push_back(a);
  28.             b=a;
  29.            
  30.         }
  31.        
  32.         if (isdigit(a)==1 && forrige == ',' || isdigit(a)==1 && forrige==':')
  33.         {
  34.             numb.push_back(a); 
  35.             letr.push_back(b);
  36.         }
  37.         if(isdigit(forrige)==1 && isalpha(a)==0 && a != ',' && a!= ':'){
  38.             numb.pop_back();
  39.             numb.push_back(join(forrige,a));
  40.         }
  41.          
  42.             forrige = a;
  43.        
  44.            
  45.             }
  46.     letr.pop_back();
  47. }
  48.  
  49.    
  50.  
  51.     for (int k=0;k<numb.size();k++){
  52.         numb[k]= numb[k]-48;
  53.  
  54.     }
  55.  
  56.  
  57.  
  58. int len = numb.size(), maxi, i, tmp, tmp2;
  59.     while(len>0)
  60.     {
  61.         maxi=0;
  62.         for(i = 1; i<len; i++)
  63.         {
  64.             if (numb[i] > numb[maxi])
  65.             {
  66.                 maxi = i;
  67.             }
  68.         }
  69.         tmp2= letr[len-1];
  70.         tmp = numb[len -1];
  71.         letr[len-1]=letr[maxi];
  72.         numb[len-1]=numb[maxi];
  73.         letr[maxi]= tmp2;
  74.         numb[maxi] = tmp;
  75.         len--;
  76.     }
  77.  
  78.  
  79.    
  80.     for(std::vector<char>::iterator l=letr.begin(); l!=letr.end(); l++)
  81.     {
  82.         cout << *l;
  83.     }
  84.     cout << endl;
  85. return 0;
  86.  
  87. }
  88. char join(int a, int b){
  89.     return (a*10 +b);
  90.  
  91.  
  92. }
  93. char join(char a, char b)
  94. {
  95.     a=a-48;
  96.     b=b-48;
  97.     return (a*10 +b + 48);
  98.  
  99.  
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement