Ir ao conteúdo
  • Cadastre-se

Pulo indevido de comando.


Crolip

Posts recomendados

Quando o programa é executado ele pula esse comando

while(lingua=='I'||lingua=='P'){//while de traducao

cout<<"\nDigite a palava para a qual deseja a sua traducao.\t";

gets(palavras);

Não consigo digitar a palavra, ele simplesmente passa para o proximo comando....

Alguem sabe por que?

/*Escrever um programa que leia um conjunto de 10 linhas contendo, cada uma, uma palavra em inglês e a sua tradução para o português.

Em seguida, leia um número indeterminado de linhas contendo, cada uma:

- a letra I (indicando inglês) e uma palavra qualquer das 10 em inglês; ou

- a letra P (indicando português) e uma palavra qualquer das 10 em português.

Para cada uma dessas linhas, escrever a palavra lida e a sua tradução. A última linha, indicando o fim dos dados, terá a primeira letra diferente de I e P.

A tradução da palavra lida deve ser feita através de uma função que recebe as listas de palavras em inglês e português, a letra I ou P e a palavra que se deseja traduzir,

devolvendo a tradução da mesma.

*/

#include <iostream.h>

#include <conio.h>

struct dicionario { //struct para armazenar o dicionario

char inglês[50];

char portugues[50];

}; //fim da struct

void cadastro(dicionario aurelio[],int tamanhoDicionario);

int traducao1(dicionario aurelio[],int tamanhoDicionario,char lingua,char palavra[]);

int main(){ //inicio do programa principal

dicionario aurelio[10];

char lingua,palavras[50];

int traducao;

cadastro(aurelio,10);

cout<<"\nDigite a liguina da palavra para qual deseja a traducao I ou P ou digite qualquer outra letra para sair.\t";

cin>>lingua;

while(lingua=='I'||lingua=='P'){//while de traducao

cout<<"\nDigite a palava para a qual deseja a sua traducao.\t";

gets(palavras);

traducao=traducao1(aurelio,10,lingua,palavras);

if(traducao!=-1){

if(lingua=='I')

cout<<"\n"<<aurelio[traducao].portugues;

else

cout<<"\n"<<aurelio[traducao].inglês;

}

else

cout<<"\nPalavra nao encontrada.";

cout<<"\nDigite a liguina da palavra para qual deseja a traducao I ou P ou digite qualquer outra letra para sair.\t";

cin>>lingua;

}//fim do while

}//fim do programa principal

void cadastro(dicionario aurelio[],int tamanhoDicionario){

int contador;

for(contador=0;contador<tamanhoDicionario;contador++){

cout<<"\nDigite a palavra\t";

gets(aurelio[contador].inglês);

cout<<"\nDigite a traducao da palavra\t";

gets(aurelio[contador].portugues);

}

}

int traducao1(dicionario aurelio[],int tamanhoDicionario,char lingua,char palavra[]){

int contador,traducao=-1;

for(contador=0;contador<tamanhoDicionario;contador++){

if(lingua=='I'){

if(strcmp(aurelio[contador].inglês,palavra)==0)

traducao=contador;

}

else

if(strcmp(aurelio[contador].portugues,palavra)==0)

traducao=contador;

}

return traducao;

}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...