Ir ao conteúdo

Posts recomendados

Postado

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
Postado

@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
Postado

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!

  • Amei 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!