Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
F1rmeza

C Comparando texto na condição IF

Recommended Posts

Galera, estou criando um código em C em que eu preciso reservar cadeiras que estão definidas com "D" (Disponíveis), porém creio que do método  que estou fazendo, não está funcionando. Eu criei o código por completo em portugol e funcinou direitinho, porém quando fui passar para C ele não está respondendo do mesmo jeito, até mesmo porque em portugol eu podia ver PASSO-A-PASSO do que Executar.

 

//Aqui o usuário informe a quantidade de cadeiras e eu aplico "D" (Disponível) em todos os vetores de cadeiras.
	do{
		fflush(stdin);
		printf("|+| (REGISTRANDO UM NOVO ESTÁDIO) |+|\n|- Insira o nome do estádio: ");
		gets(&estadio);
	}while(strcmp(estadio, "")==0);
	do{
		printf("|- Quantidade de cadeiras: ");
		scanf("%i", &qtdeCad);
	}while(qtdeCad<5 || qtdeCad>=10);
	do{
		cadeiras[indice]="D";
		id[indice]=0;
		indice=indice+1;
	}while(indice<qtdeCad);


//Nessa parte eu pego o procedimento validaSexo e faço um laço de repetição usando o FOR para ler todos os vetores de cadeiras. Aplico uma validação SE(comparaTexto,cadeiras[indice],"D")==0), então se no vetor 0 de cadeiras estiver escrito "D", ele irá fazer a validação e vai escrever a cadeira na tela. Isso não está ocorrendo, não está ocorrendo nada, parece que os caracter "D" não foram atribuidos na variavel cadeiras ou sla kkk 
				do{
					validaSexo(sexo);
					for(indice=0;indice<qtdeCad-1;indice++){
						if(strcmp(cadeiras[indice],"D")==0){
							printf("%s", cadeiras[indice]);
						}
					}
				}while(continuar=='s');




//Procedimento
void validaSexo(char *sexo){
	printf("\n|+| (REGISTRANDO SEXO) |+|\n|- (M) Masculino\n|- (F) Feminino\n");
	sexo=getch();
	sexo=toupper(sexo);
	system("cls");
}

 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o código completo para testarmos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@iHollyZinhO

 

// Síntese
//  Objetivo:	
//  Entrada :	
//  Saída   :	
//  Autor	:	Caio Villar Rocha

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<locale.h>

void validaPorcentagemDesconto(int *valorNormal, int *descontoM, int *descontoF);
void validaSexo(char *sexo);

main(){
setlocale(LC_ALL, "portuguese");
	
	//Declarações
	int valorNormal, valorOriginal, descontoM, descontoF;
	int indice, qtdeCad, remover, numReserva, contR, contC, contD, confirmar;
	int id[10];
	char cadeiras[10];
	char estadio[10];
	char sexo, acao, continuar;
	
	//Instruções
	indice=0;
	contR=0;
	contC=0;
	contD=0;
	
	validaPorcentagemDesconto(&valorNormal, &descontoM, &descontoF);
	do{
		fflush(stdin);
		printf("|+| (REGISTRANDO UM NOVO ESTÁDIO) |+|\n|- Insira o nome do estádio: ");
		gets(&estadio);
	}while(strcmp(estadio, "")==0);
	do{
		printf("|- Quantidade de cadeiras: ");
		scanf("%i", &qtdeCad);
	}while(qtdeCad<5 || qtdeCad>=10);
	do{
		cadeiras[indice]="D";
		id[indice]=0;
		indice=indice+1;
	}while(indice<qtdeCad);
	
	system("cls");
	
	do{
		printf("\t|+| MENU DE AÇÕES |+|\n\n\t(1) Verificar Cadeiras\n\t(2) Efetuar Reserva\n\t(3) Cancelar Reserva\n\t(4) Confirmar Reserva\n\t(5) Mostrar Resumo\n\n|- Tecle uma opção: ");
		acao=getch();
		system("cls");
		switch(acao){
			case '1':
				indice=0;
				//Instruções;
			break;
			case '2':
				do{
					validaSexo(sexo);
					for(indice=0;indice<qtdeCad-1;indice++){
						if(strcmp(cadeiras[indice],"D")==0){
							printf("%s", cadeiras[indice]);
						}
					}
				}while(continuar=='s');
				//Instruções;
			break;
			case '3':
				//Instruções;
			break;
			case '4':
				//Instruções
			break;
			case '5':
				//Instruções
			break;
			default:
				printf("\n[!] Opção inexistente.\n");
				continuar='n';
		}
	}while(continuar=='n');
	
	
}

void validaPorcentagemDesconto(int *valorNormal, int *descontoM, int *descontoF){
	printf("|+| (REGISTRANDO UM VALOR DO INGRESSO) |+|\n| Insira o valor do ingresso: ");
	scanf("%i", valorNormal);
	printf("| Insira o desconto masculino: ");
	scanf("%i", descontoM);
	printf("| Insira o desconto feminino: ");
	scanf("%i", descontoF);
}

void validaSexo(char *sexo){
	printf("\n|+| (REGISTRANDO SEXO) |+|\n|- (M) Masculino\n|- (F) Feminino\n");
	sexo=getch();
	sexo=toupper(sexo);
	system("cls");
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @F1rmeza

 

 

  • Em C usam a função strcpy!
10 horas atrás, F1rmeza disse:

cadeiras[indice]="D";

strcpy( cadeiras[indice],"D" ); /* Copio na cadeira[atual] valor "D" */

 

 

  • Cada elemento no vetor obrigadoramente tem que no mínimo 2 char [1 para letra D e outro para caractere nulo], com isso modificamos aqui também:
10 horas atrás, F1rmeza disse:

char cadeiras[10]

char cadeiras[10][2]; /* Reserve 10 vetores com 2 elementos cada */

  

 

 

~~  /  ~~

Bons Códigos!

Editado por AnsiC
Deletar redundância
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×