Ir ao conteúdo
  • Cadastre-se

herbertbahia

Membro Pleno
  • Posts

    537
  • Cadastrado em

  • Última visita

Tudo que herbertbahia postou

  1. para acessar os elementos de uma struct ela vai precisar ter um tipo e a sua struct cad_cliente nao tinha. pode ser qualquer nome o importante é ter um tipo. veja os tipos de structs e como associar valores as suas respetivas variaveis #include <stdio.h> int main() { //Existem quatro tipos de struct: //Struct com tipo logo apos a chave. (apenas uma unica estrutura) struct estrutura1{ int a; int b; }var1; //aqui cria-se um novo tipo, poderia ser vetor. var1.a=3; printf("%d\n",var1.a); //Struct com a variável depois. (apenas uma unica estrutura) struct estrutura2{ int a; int b; }; struct estrutura2 var2;//aqui cria-se o novo tipo var2, poderia ser vetor. var2.a=5; var2.b=7; printf("%d %d\n",var2.a,var2.b); //Struct typedef com o tipo logo apos a chave. typedef struct{ int a; int b; }var3; //aqui cria-se um novo tipo //Observe que nao pode fazer var1 x,y; nem var2 x,y; mas com struct typedef pode. //ou seja cada variavel que criar sera outra estrutura. var3 x,y;//aqui foi criado 2 variavel do tipo var3 cada variavel representa 1 struct. x.a=1; y.a=2; printf("%d %d\n",x.a,y.a); //Struct com typedef na variavel struct estrutura4{ int a; int b; }; typedef struct estrutura4 novo;//tipo e variavel na mesma linha. //observe que agora podemos declarar novas variaveis para a mesma estrutura. novo struct1, struct2, struct3; struct1.a=8; struct2.a=10; struct3.a=20; printf("%d %d %d\n",struct1.a,struct2.a,struct3.a); //quando o novo tipo de alguma estrutura for um ponteiro poderá usar setinha -> //resumindo o que permite usar -> é possuir um asterisco(*) //ex 1: struct estrutura5{ int membro; }; // Acessando através de uma variavel não-ponteiro: e estrutura5 e; e.membro = 0; // Acessando através de uma variavel ponteiro: e2 estrutura5* e2; e2->membro = 0; // ou (*e2).membro = 0; //ex2: struct no{ int dado; struct no *prox; }; struct no *ptr = (struct no*) malloc(sizeof(struct no)); ptr->dado // ou (*ptr).dado ptr->prox// ou (*ptr).prox } voce estava deixando a struct presa na funcao main eu coloquei a struct como global pois pode ser acessada de qualquer funcao do programa
  2. @Def basta mencionar que infor é do tipo struct veja #include <stdio.h> #include <stdlib.h> //dados cadastrais do cliente struct cad_cliente{ char nome[10]; int idade; char CPF_CNPJ[20]; char CNH[30]; char Endereco[50]; }; int main(void){ struct cad_cliente info; printf("-----------------------------------------\n"); printf("\tCONTROLE DE ESTACIONAMENTO\n"); printf("-----------------------------------------\n\n"); printf("1- Cadastrar Cliente\n"); printf("\n2- Cadastrar Veiculo\n"); printf("\n3- Listar veiculos cadastrados\n"); printf("\n4- Creditos\n"); printf("\n5- Sair\n"); printf("Informe o nome do cliente: "); gets(info.nome); printf("Informe a idade do cliente: "); scanf("%d", &info.idade); printf("Informe o CPF/CNPJ do cliente: "); gets(info.CPF_CNPJ); printf("Informe o número do CNH do cliente: "); gets(info.CNH); printf("Informe o endereço do cliente: "); gets(info.Endereco); system("pause"); return 0; }
  3. é verdade apenas desinstalar não vai fazer as conficiones se ajeitarem então é bom voce ver se realmente tem um compilador linkado certinho entre outros detalhes mas eu nao usei nenhum comando da linuguagem c++ somente c
  4. @Def o seu cb esta mal configurado aqui está compilando normalmente
  5. #include <stdio.h> #define folhas 10 #define cadernos 12 #define ficharios 16 int main(void) { int num; printf("digite um numero:\n"); scanf("%d",&num); if(num==folhas) printf("voce digitou o codigo do produto folhas valem R$0,10"); else if(num==cadernos) printf("voce digitou o codigo do produto cadernos valem R$6"); else if(num==ficharios) printf("voce digitou o codigo do produto ficharios valem R$10"); else printf("Produto nao Encontrado"); return 0; }
  6. @Def o seu algoritmo tem bastante erros vou citar alguns; voce nao fechou a struct , voce nao declarou o tipo da struct, voce nao esta tentando atribuir as informações lidas nas variaveis das struc, voce esta usando todas variaveis do tipo caractere ate quando deveria ser inteiros, o seu algoritmo nao tem um switch para ler a opcao do menu acredio porque deu pau antes de da tempo de fazer, para ler um string você nao pode usar %c de char deve usar %s de string ou gets e nao deve usar & quando se tratar d estrings, fiz alguma pequenas modificacoes e ja compilou, tente terminar... #include <stdio.h> #include <stdlib.h> #include <conio.h> int main(void) { printf("-----------------------------------------\n"); printf("\tCONTROLE DE ESTACIONAMENTO\n"); printf("-----------------------------------------\n\n"); printf("1- Cadastrar Cliente\n"); printf("\n2- Cadastrar Veiculo\n"); printf("\n3- Listar veiculos cadastrados\n"); printf("\n4- Creditos\n"); printf("\n5- Sair\n"); //dados cadastrais do cliente struct cad_cliente{ char nome[10]; int idade; char CPF_CNPJ[20]; char CNH[30]; char Endereco[50]; }; cad_cliente info; printf("Informe o nome do cliente: "); gets(info.nome); printf("Informe a idade do cliente: "); scanf("%d", &info.idade); printf("Informe o CPF/CNPJ do cliente: "); gets(info.CPF_CNPJ); printf("Informe o número do CNH do cliente: "); gets(info.CNH); printf("Informe o endereço do cliente: "); gets(info.Endereco); system("pause"); return 0; };
  7. muito boa explicação do arfneto isso nunca aconteceu comigo mas é muito bem pensado.
  8. #include <stdio.h> #define A 4 #define B 3 #define C 5 int main(){ int qtd_A,qtd_B,qtd_C,result_venda; printf("digite a quantidade do produto A:"); scanf("%d",&qtd_A); printf("digite a quantidade do produto B:"); scanf("%d",&qtd_B); printf("digite a quantidade do produto C:"); scanf("%d",&qtd_C); result_venda = (qtd_A*A + qtd_B*B + qtd_C*C); printf("o resultado da venda eh %d",result_venda); return 0; } @Matheus Freitas é bem como o @arfneto citou é so fazer as multiplicacoes e voce vai ter o valor então seu codigo poderia ser assim..
  9. @biaa_sly voce pode fazer um switch de letras aí coloca um contador dentro de cada letra e quando terminar de digitar sai do loop e imprime os que estiverem com contador diferente de 0
  10. #include <stdio.h> #include <stdlib.h> typedef struct lista { int info; struct lista* prox; } TLista; typedef struct fila { TLista *inicio; TLista *fim; } TFila; TFila *inicializa(void); int fila_vazia(TFila *f); void insere(TFila *f, int elem); int retira(TFila *f); void libera(TFila *f); void imprime_fila(TFila *f); int somaPositivo(TFila *f); TLista* cria_lista (void); TLista* insere_inicio (TLista* li, int i); TLista* insere_fim (TLista* li, int i); TLista* insere_ordenado (TLista* li, int i); void imprime (TLista* li); int main(){ } TFila *inicializa(void){ TFila *f = (TFila *)malloc(sizeof(TFila)); f->inicio = NULL; f->fim = NULL; return f; } int fila_vazia(TFila *f){ if (f->inicio == NULL) { return 1; } else return 0; } void insere(TFila *f, int elem){ TLista *novo = (TLista *)malloc(sizeof(TLista)); novo->info = elem; novo->prox = NULL; //inserção no fim da fila if (!fila_vazia(f)){ f->fim->prox = novo; } else{ f->inicio = novo; } f->fim = novo; //elemento inserido é o novo fim da fila } /* * Remove elemento da fila e retorna info do elemento excluído */ int retira(TFila *f){ if (fila_vazia(f)){ exit(1); } int info = f->inicio->info; TLista *aux = f->inicio; f->inicio=f->inicio->prox; //se elemento removido era o único da fila //faz fim apontar para NULL também if (f->inicio == NULL) { f->fim = NULL; } free(aux); return info; } void libera(TFila *f){ TLista *q, *p = f->inicio; while(p != NULL){ q = p; p = p->prox; free(q); } free(f); } void imprime_fila(TFila *f){ //Checa e a fila está vazia. if(fila_vazia(f)) exit(1); else{ TFila *tmp=inicializa(); printf("VALOR DA FILA!\n"); printf("###############################\n"); while(f->inicio!=NULL){ insere(tmp, f->inicio->info); printf("%d ", f->inicio->info); retira(f); } printf("\n###############################"); while(tmp->inicio!=NULL){ insere(f, tmp->inicio->info); retira(tmp); } } } void altera_inicio_fila(TFila *f, int novo){ if(fila_vazia(f)) exit(1); else f->inicio->info=novo; } int somaPositivo(TFila *f){ //Checa e a fila está vazia. int soma=0; if(fila_vazia(f)) exit(1); else{ TFila *tmp=inicializa(); while(f->inicio!=NULL){ insere(tmp, f->inicio->info); soma+= f->inicio->info; retira(f); } while(tmp->inicio!=NULL){ insere(f, tmp->inicio->info); retira(tmp); } } return soma; }
  11. acredito que sim mais o que exigem entender é que a variavel local é formal e a global não, mas me perdoe se descordar. em muitos casos voce pode simplesmente chamar uma funcao e ler variaveis globais com parametros void mas eu não conheço esse chará e nunca li nada relacionado a ele espero que alguem consigo te dar uma explicação mais adquada para sua necessidade.
  12. por exemplo o meu prototipo é void inicializar(tfila *f); mas no corpo do programa eu nao posso chamar inicializar(tfila *f); eu chamo inicializar(f); ambos tem alguma coisa entre os parenteses que é o parametro eu entendo assim... @Sam_057 pense que você tem variaveis globais e locais e a formalidade está associada a localidade. todas as variaveis locais da funcao sao parametros formais pois ja estão acessiveis dentro daquele bloco.
  13. os parametros formais sao os parametros quando sao declarados já os parâmetros atuais/reais.são os parametros chamados na chamada da funcao.
  14. #include <stdio.h> int main(){ int x,y; printf("digite o valor de 1 parcela x\n"); scanf("%d",&x); printf("digite a porcentagem do juros y\n"); scanf("%d",&y); y=(y*x/100); y+=x; printf("uma parcela com o juros fica %d",y); return 0; }
  15. sim acho que tentou escrever isto #include <stdio.h> #include <locale.h> int main(void) { setlocale(LC_CTYPE, "Portuguese"); float R1,R2,R3; printf("digite o raio do 1º cilindro:"); scanf("%f",&R1); printf("digite o raio do 2º cilindro:"); scanf("%f",&R2); printf("digite o raio do 3º cilindro:"); scanf("%f",&R3); if(R2+R3<=R1) printf("Coube"); else printf("Não Coube"); return 0; }
  16. basta você percorrer os elementos, use um if(va>0) para saber se é positivo, caso seja some o valor na variavel soma depois de percorrer retorne a variavel soma aqui um exemplo de como evitar retornar numeros negativos da fila int somaPositivo(tfila *f){ int va; if (vazia(*f)) return -1; tno *aux=f->ini; va=f->ini->dado; f->ini=f->ini->prox; free(aux); if (vazia(*f))f->fim=NULL; if(va>0) return va; }
  17. @lidy ane voce entendeu sobre o que falei do strstr?
  18. eis um exemplo #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> struct Aluno{ int N_processo = {}; char Nome[21]; char Morada[50]; bool Classificacao; }; int main(){ int op,i,j; struct Aluno Aluno[10]; float disciplina[10][5]; const char nomedisciplinas[5][20]={"matematica","portugues","ciencia","historia","geografia"}; FILE * arq; while(1){ setlocale(LC_CTYPE, "Portuguese"); printf("Introduzir dados;\n"); printf("1 - Disciplinas\n"); printf("2 - Alunos\n"); printf("3 - Classificações\n"); printf("4 - Listagem\n"); printf("5 - Nomes dos alunos e respetivas classificações\n"); printf("6 - Alunos reprovados\n"); printf("7 - Alunos aprovados\n"); printf("8 - Sair\n"); scanf("%d",&op); switch(op){ case 3: arq = fopen("classificacoes.txt", "w"); if( arq == NULL ){ perror("Erro ao criar classificacoes.txt"); getchar(); exit(-1); } else{ for(i=0;i<10;i++){ for( j=0;j<5;j++) fprintf(arq,"Aluno %s Disciplina %s \n Classificacao: %s\n",Aluno[i].Nome,nomedisciplinas[j],Aluno[i].Classificacao); } fclose(arq); printf("classificacoes.txt foi criado.\n"); } case 8: exit(1); } } }
  19. as classificações nada mais são do que algo simples como Nome: jose Classificação : Aprovado nome : Pedro Classificação : Reprovado e este exemplo já é uma listagem
  20. pelo que entendir voce tanto pode digitar as informaçoes no txt e fazer um programa que leia eles, como tambem pode ler no stdin e armazenar no txt o importante são as funcoes funcionarem. adicionado 45 minutos depois diga que coisas quer? me faça uma pergunta especifica.
  21. @José__pereira quais as funções que conseguiu fazer? não me diga que ainda está no mesmo ponto que entreguei

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!