Ir ao conteúdo
  • Cadastre-se

giovany93

Membros Juniores
  • Total de itens

    7
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. Alguem me ajude!!! Fiz uma funcao desimpilhar nao sei onde esta o erro, exemplo: Dada a pilha 654321 Era para desimpilhar tudo ... só que esta desimpilhando só o primeiro e o final da pilha esta sem o NULL... int desempilhar(p_no p) { int c; p_no topo; topo=p; if(topo!=NULL) {c=topo->dado; p=p->prox; free(topo); return c;} exit(1); } }
  2. Estou fazendo fazendo um exercício que é para pegar um valor n de testes e escanear valores e letras referentes aos tipos de animais .Mas não sei onde está o erro ,acredito que seja no while.obs:quando digito um n ele roda n/2 vezes era para ser n vezes. #include<stdlib.h> int main() { int i,N,r,s,c,Quantia; char Tipo; r=0; s=0; c=0; scanf("%d",&N); for(i=0; i<N; i++) { scanf("%d",&Quantia); while(Quantia<1||Quantia>15) { scanf("%d",&Quantia); } scanf("%c",&Tipo); switch(Tipo) { case 'S': { s=s+Quantia; break; } case 'R': { r=r+Quantia; break; } case 'C': { c=c+Quantia; break; } } } printf("Total: %d cobaias\n %d\nTotal de coelhos: %d" "\nTotal de ratos: %d" "\nTotal de sapos: %d" "\nPercentual de coelhos: %.2d %%" "\nPercentual de ratos: %.2d %%" "\nPercentual de sapos: %.2d %%",c+r+s,c,r,s,c/(r+s+c),r/(r+s+c),s/(r+s+c)); }
  3. Mas não entendi sua dúvida, o que quer dizer com "porque você não preenche a palavra?" ? A palavra é fornecida pelo usuário no scanf("%s", p); Eu quero dizer se o caractere de fim de string é preenchido sozinho ou devemos fazer com que seja atribuída a última posição o '\0'.Outra coisa,eu entendei que a função limpa o espaço para depois desalocar,mas não entendi o código.
  4. Ah sim , Eh verdade o ponteiro pode ser visto como vetor né? aih eu não preciso e nem posso fazer scanf("%s",*p); Outra coisa você sabe me dizer porque quando digito a palavra (sem digitar o tamanho),o código não dah erro ?Por exemplo: No código tá assim: printf ("DIGITE O TAMANHO DA PALAVRA...\n"); scanf ("%d", &n); mas se eu digitar qualquer palavra , o codigo já imprime a criptografia e a palavra normal ,porque não dah erro? Queria saber mais coisa ainda...Aqui você aloca n+1 por causa do caracter do fim de string né? Se sim porque você não preenche a palavra?Ela eh automaticamente preenchida? char *p; p = (char*) malloc (n * sizeof(char) + 1); /* aloco o valor digitado */ scanf ("%s", p); /* armazeno na variável */ printf("original :: %s\n", p); /* imprimo a palavra normalmente */ criptografia (p, n); E aqui embaixo eu não entendi ,é que eu sou "calouro em C"kkk.A função free já não faz essa limpeza.Me explique pfv ,pois eu não entendi o while nem char *limit = p - 1; p += n.Desde já agradeço!!! /* boa prática: limpe o contéudo, libere memória sem uso. */ char *limit = p - 1; p += n; while (limit <-- p){ *p = 0; } free (p); return 0; }
  5. Eu estou tentando fazer um código em c no qual uma palavra deve ser criptografada.Eu não sei o que está dando errado. #include<stdlib.h> #include<string.h> int main() { int n; printf("DIGITE O TAMANHO DA PALAVRA...\n"); scanf("%d",&n); char *p; p=(char*) malloc(n*sizeof(char));//aloco o valor digitado scanf("%s",p);//armazeno na variável printf(" %s",*p);//imprimo a palavra normalmente criptografia(*p,n); } void criptografia(char palavra[ ],int n) { int i; for(i=0; i<n; i++) { switch(palavra) { case 'A':palavra='J'; case 'B':palavra='K'; case 'C':palavra='L'; case 'D':palavra='M'; case 'E':palavra='N'; case 'F':palavra='O'; case 'G':palavra='P'; case 'H':palavra='Q'; case 'I':palavra='R'; case 'J':palavra='S'; case 'K':palavra='T'; case 'L':palavra='U'; case 'M':palavra='W'; case 'N':palavra='X'; case 'O':palavra='Y'; case 'P':palavra='Z'; case 'Q':palavra='A'; case 'R':palavra='B'; case 'S':palavra='C'; case 'T':palavra='D'; case 'U':palavra='E'; case 'V':palavra='F'; case 'W':palavra='G'; case 'X':palavra='H'; case 'Y':palavra='I'; case 'Z':palavra='J'; } printf("%s",palavra); } }
  6. Gente estou fazendo um código para ler 6 números e verificar a quantidade de positivos e fazer a média aritmética dos positivos .Me ajudem o que têm de errado: Obs:Usei ponteiro e função porque estou aprendendo ,então quero aplicar em exercícios simples primeiro. #include<stdlib.h> #include<stdio.h> verifica(double c,int *cont,double media); int main() { double a,b,c,d,e,f,media; int cont1; media=0; cont1=0; scanf("%f %f %f %f %f %f",&a,&b,&c,&d,&e,&f); verifica(a,&cont1,media); verifica(b,&cont1,media); verifica(c,&cont1,media); verifica(d,&cont1,media); verifica(e,&cont1,media); verifica(f,&cont1,media); media=media/ cont1; printf("%d\n %d\n",cont1,media); } verifica(double c,int *cont,double media) { if(c>0){ *cont=*cont+1; media=media+c; } return media; }

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

×