Jump to content
  • ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By Gui2000
      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"); }  
    • By tiagosp
      Estou utilizando a função getUsermedia() para acessar a camera de dispositivos moveis, porém quando solicito que a camera traseira seja aberta, a imagem chega invertida, ou seja, a esquerda vai para a direita e vice-versa.
      <html lang="PT-BR"> <header> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> body{ text-align: center; } </style> </header> <body> <video src="" id="video1" muted autoplay></video> <button onclick="IniciarCamera()">Iniciar Camera</button> <script> function IniciarCamera(){ navigator.mediaDevices.getUserMedia({video: {facingMode: 'environment'}, audio: false}) .then((stream)=> { document.getElementById("video1").srcObject = stream }) } function PararCamera(){ document.getElementById("video1") .srcObject .getVideoTracks() .forEach(track=> track.stop()) } </script> </body> </html>  
    • By David Samu
      let total_entradas = 3//ai virar total de colunas
      let total_linhas   = 0
      let tabela         = []
      for(let coluna=total_entradas; coluna>0; coluna-- )
      {
          let repeticao = 1
          for(let x=1; x<=coluna; x++)
          {
              repeticao = (2 * repeticao)
          }
          if( total_linhas === 0 )
          {
              total_linhas = repeticao
          }
          if(repeticao != 1) 
          {
              repeticao = (repeticao / 2)
          }
          let valores = []
          let vdd     = 1
          let lastBoo = 'v'
          for( let linha=0; linha < total_linhas; linha++ )
          {
              if( vdd <= repeticao )
              {
                  val = lastBoo
              }
              else
              {
                  if( lastBoo == 'v' )
                  {
                      lastBoo = 'f'  
                  }
                  else 
                  {
                      lastBoo = 'v'
                  }
                  val = lastBoo
                  vdd=1
              }
              vdd++
              valores.push(val)
          }
          tabela[ (coluna - 1) ] = valores   
      }
      let countCol = 1
      for(let coluna=tabela.length - 1; coluna>=0; coluna--)
      {
          console.log("Coluna ", countCol++)
          for(let linha = 0; linha < tabela[coluna].length; linha ++)
          {
              console.log( tabela[coluna][linha] )
          }
      }
    • By Gui2000
      O código é para a colocar 3 letras a partir de 3 nomes diferentes. Ou seja:
      A-> Adriano
      B-> Bruno
      C->Carol
      Com isso eu criaria uma agenda.

      Problema

      1-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 NULL

      2- 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!"); } }  
    • By gramosiri2
      Exercicio Caixa eletrônico com Notas.
       
      Ola, estou tentando fazer um ex. aqui de um caixa eletrônico, onde precisa ser feito o saque apenas com as determinadas notas: 2, 5, 10, 20, 50 e 100 reais. Porém quando tento sacar 11 por exemplo ele soma uma nota de 10 apenas, acho que vai ter que tirar o mod, alguma ideia??
       
      #include <stdio.h> #include <stdlib.h> int main() { int n100=0,n50=0,n20=0,n10=0,nota5=0,nota2=0; float valor=0; int op; printf("-> Quanto deseja sacar? R$"); scanf("%f",&valor); while(valor>=100){ valor=valor-100; n100=n100+1; } while(valor>=50){ valor=valor-50; n50=n50+1; } while(valor>=20){ valor=valor-20; n20=n20+1; } while(valor>=10){ valor=valor-10; n10=n10+1; } while(valor>=5){ valor=valor-5; nota5=nota5+1; } while(valor>=2){ valor=valor-2; nota2=nota2+1; } printf("SAQUE:\n"); printf("%d nota(s) de R$ 100.00\n",n100); printf("%d nota(s) de R$ 50.00\n",n50); printf("%d nota(s) de R$ 20.00\n",n20); printf("%d nota(s) de R$ 10.00\n",n10); printf("%d nota(s) de R$ 5.00\n",nota5); printf("%d nota(s) de R$ 2.00\n",nota2); return 0; }  
×

Important Information

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