HELP

How to fix this error in function shellsort??



#include<iostream>
#include <stdio.h>
#include <string.h>

using namespace std;

#define PALAVRA_MAX 50
#define DICIONARIO_MAX 100
#define STR_END '\0'

struct item {
char palavra[PALAVRA_MAX];
char traducao[PALAVRA_MAX];
}dicionario[DICIONARIO_MAX];

int exibeMenu(){

int op;

cout << "\n----------------- GUGOU TRADUTOR -----------------\n";
cout << "1 - Adicionar Traducao\n";
cout << "2 - Traduzir\n";
cout << "3 - Imprimir Dicionario\n";
cout << "0 - Sair\n";
cout << "Opcao ->";
cin >> op;

return op;
}

void adicionaTraducao(int &posicao){

cout << "Palavra: ";
cin >> dicionario[posicao].palavra;
cout << "Traducao: ";
cin >> dicionario[posicao].traducao;
posicao++;


}

void shellsort(){

string CHAVE;
int i,j,h,z;

for(h = 1; h < 50; h = 3*h+1){
while(h>0){
h = (h-1)/3;
for(i = h; i< 50; i++){
CHAVE = dicionario[i].palavra;
j = i;
while(dicionario[j - h].palavra > CHAVE ) {
dicionario[j].palavra = dicionario[j - h].palavra;
j = h;
if(j < h) break;
}
dicionario[j].palavra = CHAVE;
}
}
}
}


bool palavrasIguais(char palavra1[], char palavra2[]){

int i;

for(i=0; (palavra1[i] == palavra2[i]) && (palavra1[i] != STR_END); i++);

return palavra1[i] == palavra2[i];
}

void copiaString(char destino[], char origem[]){

int i;

for(i=0; origem[i] != STR_END; i++){
destino[i] = origem[i];
}

destino[i] = origem[i];
}

void traduzPalavra(char palavra[], char traducao[], int tamanho){

for(int i=0; i<tamanho; i++){
if( palavrasIguais(palavra, dicionario[i].palavra) ){
copiaString(traducao, dicionario[i].traducao);
return;
}
}

copiaString(traducao, palavra);
}

void traduzir(int tamanhoDicionario){

char aux[PALAVRA_MAX], trad[PALAVRA_MAX];

cout << "Palavra: ";
cin >> aux;

traduzPalavra(aux, trad, tamanhoDicionario);

cout << "Traducao: ";
cout << trad << endl;
}

void imprimeDicionario(int tamanho){

for(int i=0; i<tamanho; i++){
cout << "-- Item " << i << "------------------------\n";
cout << "Palavra: " << dicionario[i].palavra << endl;
cout << "Traducao: " << dicionario[i].traducao << endl;
}



}

int main(){

int op;
int tamanhoDicionario=0;

do{
op = exibeMenu();

switch(op){
case 1:
adicionaTraducao(tamanhoDicionario);
break;
case 2:
traduzir(tamanhoDicionario);
break;
case 3:
imprimeDicionario(tamanhoDicionario);
break;
case 0:
cout << "Flw\n";
break;
default:
cout << "Opcao invalida\n";
}
}while(op != 0);

return 0;
}
Topic archived. No new replies allowed.