Jump to content

Gui2000

Members
  • Content count

    5
  • Joined

  • Last visited

Community Reputation

0 Comum

About Gui2000

  • Birthday 03/26/2000

Informações Pessoais

  • Sexo
    Masculino
  • Interesses
    Hacker.

Contato

  • Twitter
    Sem perfil.
  1. Gui2000

    Jogo da velha/Erro Ao Executar !

    1- Em C ao se compara strings você tem que usar um função do C. Em C++ pode não ser diferente, se quiser pesquise sobre. 2- Você tá comparando com essas aspas ' ' e não estas " ", essas que são para comparar strings. if(*vetor[l][0]=='X' && *vetor[l][1]=='X' && *vetor[l][2] == 'X') 3- Nas linhas return: return o=true; Por que não retornar apenas true? Ao invés de fazer algo receber. Acho que não existe " o " na sua função. Essa variável. Flw.
  2. Bom, no meu código ao acessar um vetor de struct declarado globalmente e inicializado no main eu tento passar valores para ele e tento imprimir e nem chega a esse ponto. Antes de eu fazer isso fiz um vetor de struct no int main, inicializei lá, passei para a função, mas ao imprimir não mostrava nada. Cheguei ao ponto de pensar em retornar a struct para a struct do int main, mas como são as mesmas fiquei parado e peço a ajuda de vocês se poderem apontar erros ou qualquer coisa no código a baixo: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #define tamanho 3 typedef struct nomes vetnome; typedef struct letras letra; struct nomes{ char nome[30]; vetnome *pont; }; struct letras{ char L[4]; vetnome *pontpnome; }; void inserir (vetnome **nom); int chave(char nome2[30]); void imprimir(); letra tabEsp[tamanho]; int main() { int qtd=1,i=0,contd=0; int chaveres=0; char nome[30], resposta[30]; for(contd=0;contd<3;contd++) { strcpy(tabEsp[contd].L,"NULL"); } while(qtd<4) { printf("Insira 3 letras diferentes, você guardará nomes com essas iniciais depois desse processo: "); vetnome *nom=(vetnome *)malloc(sizeof(vetnome)); inserir(&nom); system("pause"); system("cls"); qtd++; } puts("Aqui você irá colocar nomes dentro das 3 listas criadas! :)"); while((strcmp(strupr(resposta),"NAO"))!=0) { vetnome *nom=(vetnome *)malloc(sizeof(vetnome)); inserir(&nom); printf("Você quer continuar?[Sim/Nao]"); scanf("%s", &resposta); system("pause"); system("cls"); } imprimir(); return 0; } int chave(char nome2[30]) { unsigned int resultado= (int)nome2[0]%tamanho; if(resultado<0) resultado=-resultado; return resultado; } void inserir (vetnome **nom) { char nome[30], nome2[30]; puts("Digite um nome: "); scanf("%s", &nome); strcpy(nome2,strupr(nome)); int chaveres=chave(nome2); vetnome *aux2; aux2=nom; if(chaveres==1) { if(strcmp(tabEsp[chaveres].L,"NULL")==0) { strncpy(tabEsp[chaveres].L,nome,1); aux2->pont=NULL; tabEsp[chaveres].pontpnome=aux2; return; } else if((strcmp(tabEsp[chaveres].L,"NULL")>0) || (strcmp(tabEsp[chaveres].L,"NULL")<0)) { aux2=tabEsp[chaveres].pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strncpy(name->nome,nome,30); aux2=name; aux2->pont=NULL; return; } } if(chaveres==2) { if (strcmp(tabEsp[chaveres].L,"NULL")==0) { strncpy(tabEsp[chaveres].L,nome,1); aux2->pont=NULL; tabEsp[chaveres].pontpnome=aux2; return; } else if((strcmp(tabEsp[chaveres].L,"NULL")>0) || (strcmp(tabEsp[chaveres].L,"NULL")<0)) { aux2=tabEsp[chaveres].pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strncpy(name->nome,nome,30); aux2=name; aux2->pont=NULL; return; } } if(chaveres==3) { if (strcmp(tabEsp[chaveres].L,"NULL")==0) { strncpy(tabEsp[chaveres].L,nome,1); aux2->pont=NULL; tabEsp[chaveres].pontpnome=aux2; return; } else if((strcmp(tabEsp[chaveres].L,"NULL")>0) || (strcmp(tabEsp[chaveres].L,"NULL")<0)) { aux2=tabEsp[chaveres].pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strncpy(name->nome,nome,30); aux2=name; aux2->pont=NULL; return; } } if (chaveres>3) { puts("Espaço não reservado!"); } } void imprimir() { int num=0,qtd=0; puts("Digite qual opção deseja: \n"); puts("[ 0 ] TUDO \n"); puts("[ 1 ] APENAS UMA DAS LISTAS DE LETRAS \n"); puts("[ 2 ] Sair \n"); scanf(" %d", &num); if(num==0) { vetnome *aux2; for(qtd=0;qtd<4;qtd++) { printf("Primeira Letra -> %c \n", tabEsp[qtd].L[0]); aux2=tabEsp[qtd].pontpnome; while(aux2!=NULL) { printf("Nome -> ", aux2->nome,"\n"); aux2=aux2->pont; } } } system("pause"); }
  3. Gui2000

    Código de agenda em C[Resolvido]

    O código é para a colocar 3 letras a partir de 3 nomes diferentes. Ou seja:A-> AdrianoB-> BrunoC->CarolCom isso eu criaria uma agenda.Problema1-Ao eu compara o que tem dentro da letra que como não tem nada seria NULL então ele nem entra no casso que ele é igual a NULL2- Ao receber a posição da outra struct em: aux2=aux->pontpnome, ou seja ele recebe de dentro da struct letras a posição da próxima struct que é de nomes. Ao debuggar ele insinua erro ai também.Caso vejam mais um erro por favor me comuniquem. #include <stdio.h> #include <stdlib.h> #include <string.h> #define tamanho 3 typedef struct nomes vetnome; typedef struct letras letra; struct nomes{ char nome[30]; vetnome *pont; }; struct letras{ char L[4]; vetnome *pontpnome; }; void inserir (letra **let, letra tabEsp[tamanho], vetnome **ini,int qtd); int chave(char nome[30]); int main() { int qtd=0,i=0; char nome[30], resposta[30]; letra tabEsp[tamanho]; for(i=1;i<4;i++) { strcpy(tabEsp.L,"NULL"); } printf("Insira 3 nomes diferentes primeiramente: "); while(qtd<4) { letra *let=(letra *)malloc(sizeof(letra)); vetnome *ini=(vetnome *)malloc(sizeof(vetnome)); let->pontpnome=NULL; ini->pont=NULL; inserir(&let, tabEsp, &ini, qtd); system("pause"); system("cls"); qtd++; } puts("Aqui você irá colocar nomes dentro das 3 listas criadas! :)"); while(resposta!="NAO") { printf("Digite um nome: "); scanf("%s", &nome); letra *let=(letra *)malloc(sizeof(letra)); vetnome *ini=(vetnome *)malloc(sizeof(vetnome)); let=NULL; ini=NULL; inserir(&let, tabEsp, &ini, qtd); printf("Você quer continuar?[Sim/Nao]"); scanf("%s", &resposta); system("pause"); system("cls"); } return 0; } int chave(char nome[30]) { unsigned int resultado= (int)nome[0]%tamanho; if(resultado<0) resultado=-resultado; return resultado; } void inserir (letra **Let, letra tabEsp[tamanho], vetnome **Ini, int qtd) { char nome[30]; puts("Digite um nome: "); scanf("%s", &nome); int chaveres=chave(nome); vetnome *aux2; aux2=Ini; letra *aux; aux=Let; if(chaveres==1) { if(tabEsp[chaveres].L=="NULL") { letra *novo= (letra*) malloc(sizeof(letra)); vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(novo->L,nome[0]); strcpy(name->nome,nome); aux=novo; aux2=name; aux->pontpnome=&aux2; aux2->pont=NULL; return ; } else if(tabEsp[chaveres].L!="NULL") { aux2=aux->pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(name->nome,nome); aux2->pont=name; name->pont=NULL; return; } } if(chaveres==2) { if (tabEsp[chaveres].L==NULL) { letra *novo=(letra *)malloc(sizeof(letra)); vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(novo->L,nome[0]); strcpy(name->nome,nome[30]); aux=novo; aux2=name; aux->pontpnome=&aux2; return; } else if(tabEsp[chaveres].L!=NULL) { aux2=aux->pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(name->nome,nome[30]); aux2->pont=&name; name->pont=NULL; return; } } if(chaveres==3) { if (tabEsp[chaveres].L==NULL) { letra *novo=(letra *)malloc(sizeof(letra)); vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(novo->L,nome[0]); strcpy(name->nome,nome[30]); aux=novo; aux2=name; aux->pontpnome=&aux2; return; } else if(tabEsp[chaveres].L!=NULL) { aux2=aux->pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(name->nome,nome); aux2->pont=name; name->pont=NULL; return; } } if (chaveres>3) { puts("Espaço não reservado!"); } } CÓDIGO RESOLVIDO #include <stdio.h> #include <stdlib.h> #include <string.h> #define tamanho 3 typedef struct nomes vetnome; typedef struct letras letra; struct nomes{ char nome[30]; vetnome *pont; }; struct letras{ char L[4]; vetnome *pontpnome; }; void inserir (letra **let, letra tabEsp[tamanho], vetnome **ini,int qtd); int chave(char nome[30]); int main() { int qtd=1,i=0; char nome[30], resposta[30]; letra tabEsp[tamanho]={NULL,NULL,NULL}; printf("Insira 3 letras diferentes, você guardará nomes com essas iniciais depois desse processo: "); while(qtd<4) { letra *let=(letra *)malloc(sizeof(letra)); vetnome *ini=(vetnome *)malloc(sizeof(vetnome)); let->pontpnome=NULL; ini->pont=NULL; inserir(&let, tabEsp, &ini, qtd); system("pause"); system("cls"); qtd++; } puts("Aqui você irá colocar nomes dentro das 3 listas criadas! :)"); while(resposta!="NAO") { letra *let=(letra *)malloc(sizeof(letra)); vetnome *ini=(vetnome *)malloc(sizeof(vetnome)); let=NULL; ini=NULL; inserir(&let, tabEsp, &ini, qtd); printf("Você quer continuar?[Sim/Nao]"); scanf("%s", &resposta); system("pause"); system("cls"); } return 0; } int chave(char nome[30]) { unsigned int resultado= (int)nome[0]%tamanho; if(resultado<0) resultado=-resultado; return resultado; } void inserir (letra **Let, letra tabEsp[tamanho], vetnome **Ini, int qtd) { char nome[30]; puts("Digite um nome: "); scanf("%s", &nome); int chaveres=chave(nome); vetnome *aux2; aux2=Ini; letra *aux; aux=Let; if(chaveres==1) { if(tabEsp[chaveres].L==NULL) { letra *novo= (letra*) malloc(sizeof(letra)); vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(novo->L,nome[0]); strcpy(name->nome,nome); aux=novo; aux2=name; aux->pontpnome=&aux2; aux2->pont=NULL; return ; } else if(tabEsp[chaveres].L!=NULL) { aux2=aux->pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(name->nome,nome); aux2=name; aux2->pont=NULL; return; } } if(chaveres==2) { if (tabEsp[chaveres].L==NULL) { letra *novo=(letra *)malloc(sizeof(letra)); vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(novo->L,nome[0]); strcpy(name->nome,nome[30]); aux=novo; aux2=name; aux->pontpnome=&aux2; return; } else if(tabEsp[chaveres].L!=NULL) { aux2=aux->pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(name->nome,nome[30]); aux2->pont=&name; name->pont=NULL; return; } } if(chaveres==3) { if (tabEsp[chaveres].L==NULL) { letra *novo=(letra *)malloc(sizeof(letra)); vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(novo->L,nome[0]); strcpy(name->nome,nome[30]); aux=novo; aux2=name; aux->pontpnome=&aux2; return; } else if(tabEsp[chaveres].L!=NULL) { aux2=aux->pontpnome; while(aux2!=NULL) { aux2=aux2->pont; } vetnome *name=(vetnome *)malloc(sizeof(vetnome)); strcpy(name->nome,nome); aux2->pont=name; name->pont=NULL; return; } } if (chaveres>3) { puts("Espaço não reservado!"); } }
  4. Gui2000

    Agenda em C[Ajuda]

    Linguagem C Obs: A categoria não possua C. Se não entenderam posso melhorar o texto. Preciso de uma luz nesse código.O problema real é que pretendo criar uma struct para letras que vai guardar uma letra e uma para nomes e com isso pretendo criar uma lista encadeada simples para a struct letras pegar apenas três letras.Problema(Após criar as structs pretendo fazer com um ponteiro dentro da struct letra aponte para a struct de nomes e com isso vou conseguir criar três letras com nome respectivos as iniciais, ao passar cada posição das letras para um vetor de três espaços, e fazendo com que cada endereço novo aponte para diferentes nomes a partir da letra) , exemplo:A - Adriano..B - Bruno..C - Carlos..Quero fazer com que a partir das letras eu possa apontar para os nomes.Linguagem C. E só estou tentando criar no papel no momento.Meu nome é Guilherme. Não criei o código ainda é um pedido do meu professor, não peço que façam por mim apenas que me ajudem na implementação e se minha lógica está errada, onde e por favor me expliquem. ^^
  5. Meu nome é Guilherme e Sou iniciante. Bom estou criando esse código com struct, por que estou aprendendo na faculdade atualmente e preciso de ajuda. Pois uma parte do meu código, ao eu passar como parâmetro um vetor para que eu possa usar na minha função IMC, ele fala que tem um erro nela e eu não sei o que é... CÓDIGO COM PROBLEMA: #include <stdio.h> typedef struct { char nome[10]; float altura; float peso; char cpf[12]; char sexo[10]; }Dados; void imc(Dados x); char consulte[12]; void imc(Dados x[1]) { int i,c; for(i=0;i<=1;i++) { if (consulte==x.cpf) { if(x.peso<18.5) { printf("Baixo do peso."); } else { if((x.peso>=18.5) && (x.peso<25)) { printf("Peso adequado."); } else{ if((x.peso>=25) && (x.peso<30)) { printf("Sobrepeso."); } else { if(x.peso>=30) { printf("Obesidade."); } } } } } } } int main () { int i; char verdadeiro[10]; Dados pessoas[1]; for(i=0;i<=1;i++) { fflush(stdin); printf("Digite o nome da %i pessoa: ",i); scanf("%s", &pessoas.nome); fflush(stdin); printf("Digite a altura da %d pessoa: ",i); scanf("%f", &pessoas.altura); fflush(stdin); printf("Digite o cpf da %d pessoa: ",i); scanf("%s", &pessoas.cpf); fflush(stdin); printf("Digite o peso da %d pessoa: ",i); scanf("%f", &pessoas.peso); fflush(stdin); printf("Digite o sexo da %d pessoa: ",i); scanf("%s", &pessoas.sexo); fflush(stdin); } do { printf("Digite o nome do cpf da pessoa que você deseja ver o peso:"); scanf("%s", &consulte); imc(pessoas[1]); printf("Você quer continuar? Digite[S/N]"); scanf("%s", &verdadeiro); } while (verdadeiro!="N"); return 0; }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.