TÓPICO
Ayuda 5% error
JereV0 perguntou 5 years ago
Por que da 5% error?
#include<iostream>
using namespace std;
void quicksort(string *array,int start,int end);
int divide(string *array,int start,int end);
int main(){
int N,BP,BM,BG,VP,VM,VG;
string Tipo,Nombre,AA;
cin>>N;cin.ignore();
while(N!=0){
string BrP[N],BrM[N],BrG[N],VrP[N],VrM[N],VrG[N];
BP=0,BM=0,BG=0,VP=0,VM=0,VG=0;
for(int i=0;i<N;i++){
getline(cin,Nombre);
getline(cin,Tipo);
AA=Tipo+" "+Nombre;
if(Tipo=="branco P"){BrP[BP]=AA;BP++;}
if(Tipo=="branco M"){BrM[BM]=AA;BM++;}
if(Tipo=="branco G"){BrG[BG]=AA;BG++;}
if(Tipo=="vermelho P"){VrP[VP]=AA;VP++;}
if(Tipo=="vermelho M"){VrM[VM]=AA;VM++;}
if(Tipo=="vermelho G"){VrG[VG]=AA;VG++;}
}
quicksort(BrP,0,BP-1);for(int i=0;i<BP;i++){cout<<BrP[i]<<endl;}
quicksort(BrM,0,BM-1);for(int i=0;i<BM;i++){cout<<BrM[i]<<endl;}
quicksort(BrG,0,BG-1);for(int i=0;i<BG;i++){cout<<BrG[i]<<endl;}
quicksort(VrP,0,VP-1);for(int i=0;i<VP;i++){cout<<VrP[i]<<endl;}
quicksort(VrM,0,BM-1);for(int i=0;i<VM;i++){cout<<VrM[i]<<endl;}
quicksort(VrP,0,BG-1);for(int i=0;i<VG;i++){cout<<VrG[i]<<endl;}
cout<<endl;
cin>>N;cin.ignore();
}
return 0;}
void quicksort(string *array,int start,int end){
int pivot;
if (start<end){
pivot=divide(array,start,end);
quicksort(array,start,pivot-1);
quicksort(array,pivot+1,end);
}
}
int divide(string *array,int start,int end){
int left;
int right;
string pivot;
string temp;
pivot=array[start];
left=start;
right=end;
while(left<right){
while(array[right]>pivot){right--;}
while((left<right)&&(array[left]<=pivot)){left++;}
if(left<right){
temp = array[left];
array[left] = array[right];
array[right] = temp;
}
}
temp=array[right];
array[right]=array[start];
array[start]=temp;
return right;
}
Este tópico ainda não foi respondido. Seja o primeiro!