Ir ao conteúdo
  • Cadastre-se

UmPrograma

Membro Pleno
  • Posts

    182
  • Cadastrado em

  • Última visita

Tudo que UmPrograma postou

  1. Entendi agora. Valeu, deu certo aqui. Estranho que com int/char da certo. Estava seguindo a mesma forma que o professor fez e colocou no slide dele. No slide dele ele chama a funcao normal, so que nao coloca os parametros ainda. Dessa forma: int calculo (); calculo(int a, int b); // So aqui que ele coloca o que a funcao recebe. Obrigado!!!
  2. @Simon Viegas Siga os codigos abaixo. Nesse codigo agora se voce roda-lo nao vai da certo. #include <stdio.h> #include <math.h> #include <stdlib.h> main (){ float a,b,c, x,x2,y; do{ printf("Informe o valor de 'A': "); scanf("%f", &a); }while(a==0); printf("Informe o valor de 'B': "); scanf("%f", &b); printf("Informe o valor de 'C': "); scanf("%f", &c); printf("\n\nO resultado.\n"); float calculo(); //calculo(a,b,c); printf("DElta %f.\n", calculo(a,b,c)); } float calculo(float a, float b, float c){ float delta;// res, x,x2; delta=b*b-4*a*c; return delta; } porém se voce rodar esse codigo agora vai da certo. segue o codigo. #include <stdio.h> #include <math.h> #include <stdlib.h> float calculo(float a, float b, float c){ float delta;// res, x,x2; delta=b*b-4*a*c; return delta; } main (){ float a,b,c, x,x2,y; do{ printf("Informe o valor de 'A': "); scanf("%f", &a); }while(a==0); printf("Informe o valor de 'B': "); scanf("%f", &b); printf("Informe o valor de 'C': "); scanf("%f", &c); printf("\n\nO resultado.\n"); //float calculo(); //calculo(a,b,c); printf("DElta %f.\n", calculo(a,b,c)); } É isso que eu gostaria de entender. Qual a diferenca entre os dois para so na segunda opcao da certo (quando a funcao fica em cima). E porque so ocorre com o float. (porque o float so funciona em cima da funcao main)? adicionado 4 minutos depois ----------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- Resolvendo a equacao do segundo grau: #include <stdio.h> #include <math.h> #include <stdlib.h> float calculo(float a, float b, int c){ float delta, res, x,x2; delta=b*b-4*a*c; if (delta==0){ x = ((b*-1) - sqrt(delta))/2*a; printf("Delta e 0 (ZERO).\n"); printf("O valor de x e x2 e %f.\n", x); } else if(delta>0){ x= ((b*-1) + sqrt(delta))/2*a; x2= ((b*-1) - sqrt(delta))/2*a; printf("Delta e %f.\n", delta); printf("O valor de x e %f.\n", x); printf("O valor de x2 e %f.\n", x2); } else{ printf("Delta e igual a %f.\n"); printf("Nao exsite raiz real.\n"); } //return res; } main (){ float a,b,c, x,x2,y; do{ printf("Informe o valor de 'A': "); scanf("%f", &a); }while(a==0); printf("Informe o valor de 'B': "); scanf("%f", &b); printf("Informe o valor de 'C': "); scanf("%f", &c); printf("\n\nO resultado.\n"); // float calculo(); calculo(a,b,c); } Esta correto? Acho que so devo mudar o tipo da funao de float para void , ja que nao esta retornando nada.
  3. @isrnick Ontem acabei nao resfazendo o programa a noite por sono , mas agora eu concertando o parametro do tipo int para float acabou que nao fez diferenca, a funcao da errado da mesma forma. Apenas da certo se eu coloca-la em cima do corpo principal (main) , você sabe me dizer porque isso ocorre apenas com o float.? Desde de já grato pelo ajuda.
  4. @isrnick mesmo assim amigo. o do meu colega não deu certo, e não tinha esse erro. Acho que não tinha, pois era diferente a questão
  5. #include <stdio.h> #include <math.h> #include <stdlib.h> main (){ float a,b,c, x,x2,y; do{ printf("Informe o valor de 'A': "); scanf("%f", &a); }while(a==0); printf("Informe o valor de 'B': "); scanf("%f", &b); printf("Informe o valor de 'C': "); scanf("%f", &c); printf("\n\nO resultado.\n"); float calculo(); calculo(a,b,c); } float calculo(float a, float b, int c){ float delta;// res, x,x2; delta=b*b-4*a*c; return delta; } Nao retorna Eu e um colego discutimos uma questao parecida, mas não dava certo. E quando ele colocou em cima do main deu certo.
  6. Boa madrugada! Sera que vocês podem me tirar uma duvida. Eu estava criando uma funcao para encontrar o delta e a equacao do segundo grau, mas quando eu clico para rodar nao vai. Mostra>>> === Build file: "no target" in "no project" (compiler: unknown) ===| error: conflicting types for 'calculo'| note: an argument type that has a default promotion can't match an empty parameter name list declaration| previous declaration of 'calculo' was here| MAS QUANDO EU COLOCA EM CIMA DO CORPO PRINCIPAL DA CERTO. (acabei de perceber que nem colocando em cima resolve, quando nao retorna nada resolve, mas quando tem que retorna da B.O...........) Porque isso acontece?
  7. @giu_d A perca de memoria se eu incluir uma biblioteca que não vai usar? (É porque eu uso funcoes das mesmas, mas nem sempre sei de onde estão vindo, so sei quando vou compilar, ou daquelas bibliotecas como <string,h>, <time.h>)
  8. @Juliana Batista da Silva Se você quer mostrar os nomes (05 nomes) o printf deverá esta dentro de um for. Uma pergunta, esta terceira linha do seu for estaria colocando o caracter '\0' para indicar que o nome terminou? At.te, Eu
  9. Já dei uma olhada em ponteiros, tentei resolver uns exercicios que fazia uso dele. Mas aprender na internet (difícil achar algo de qualidade) não é tão fácil assim não amigo, aprende mais demora. Não é desculpas não.
  10. @AnsiC Minha maior duvida era em relação a quantidade de apostadores, e ao cartao do apostador. No caso voce já atribuiu valores diretos para cada apostador e tambem ja definiu a quantidade dos mesmos. Eu pretendia resolver o exercicio com uma matriz, inserido o cartao e as respostas nela, tanto que perguntei sobre matriz tridimensionais. Sobre usar funções, aprendi a pouco tempo, mas estou passando a usar mais elas. Mas nao aprendir ponteirios ainda. Me parece que voce usou, não sei bem. Se reparar o primeiro codigo que postei, eu consigo mostrar o vencedor, na qual so tem duaspossibilidade: o único apostador ganhou ou não ganhou. Será que com uma struct da para resolver o problema? (O professor nao explicou ainda, mas já de uma olhada na internet) Valeu amigo.
  11. Olá, tudo bem? Será que podem me ajudar num exercicio aqui. É o seguinte: Escreva um algoritmo que leia um vetor de 13 elementos, que é o Gabarito de um teste da loteria esportiva, contendo os valores 1(coluna 1), 2 (coluna 2) e 3 (coluna do meio). Leia, a seguir, para cada apostador, o número do seu cartão e um vetor de Respostas de 13 posições. Verifique para cada apostador o números de acertos, comparando o vetor de Gabarito com o vetor de Respostas. Escreva o número do apostador e o número de acertos. Se o apostador tiver 13 acertos, mostrar a mensagem "Ganhador". Eu consegui resolve-lo, mais pegando as respostas de apenas um apostador. Segue o codigo: /*14. Escreva um algoritmo que leia um vetor de 13 elementos, que é o Gabarito de um teste da loteria esportiva, contendo os valores 1(coluna 1), 2 (coluna 2) e 3 (coluna do meio). Leia, a seguir, para cada apostador, o número do seu cartão e um vetor de Respostas de 13 posições. Verifique para cada apostador o números de acertos, comparando o vetor de Gabarito com o vetor de Respostas. Escreva o número do apostador e o número de acertos. Se o apostador tiver 13 acertos, mostrar a mensagem "Ganhador".*/ #include <stdio.h> #include <stdlib.h> main (){ int vet[13],i, j,num,res[13], cont=0, cartao; char voltar[5]; printf("Informe o cartao resposta.\n"); for(i=0;i<13;i++){ printf("Vetor [%d]: ", i); scanf("%d", &vet[i]); } /* printf("Informe o numero de apostadores: "); scanf("%d", &num); for(i=0;i<num;i++){ printf("Informe o numero do %d apostador: ", i); scanf("%d", &cartao); for(j=0;j<13;j++) printf("Informe o suas respostas : "); scanf("%d", &res[i]); }*/ printf("Informe o numero do cartao do apostador: "); scanf("%d", &cartao); printf("Informe suas respostas!\n"); for(i=0;i<13;i++){ printf("resposta [%d]: ", i); scanf("%d", &res[i]); } for(i=0;i<13;i++){ if(res[i]==vet[i]) cont++; } if(cont!=13) printf("Nao tem vencedor!\n"); if(cont==13) printf("O vencendor e o do cartao numero %d!\n", cartao); system("pause"); return 0; } Mas eu queria saber como consegui colocar mais apostadores. E pedir a quantidade de pessoas que realizou as apostas para o usuario. Fiquei aqui pensando se nao e uma matriz tridimensional. Segue outro codigo que estava desenvolvendo, mas parei. #include <stdio.h> #include <stdlib.h> main (){ int gab[13],tam=5, mat[tam][13]; int i, j; printf("Entre com o gabarito: "); for(i=0;i<13;i++){ printf("Gabarito [%d]: ", i); scanf("%d", &gab[i]); } printf("Informe a quantidade de pessoas que realizou a aposta: "); scanf("%d", &tam); printf("\nEntre com os valores da aposta.\nInformando o cartao e depois a rasposta.\n"); for(i=0;i<tam;i++){ for(j=0;j<13;j++){ printf("Matriz [%d][%d]: "); scanf("%d", &mat[i][j]); /* if(j==0){ printf("Informe o numero do cartao: "); scanf("%d", &mat[i][j]); } else{ printf("Respostas: "); scanf("%d", &mat[i][j]); }*/ } } /* int k=0,cont=0; for(i=0;i<tam;i++){ for(j=0;j<=13;j++){ for(k=0;k<13;k++){ if(mat[i][j]==gab[i]&& j!=0){ cont++; } } } }*/ system("pause"); return 0; } E ai? Alguma dica para tridimensionais?
  12. Obrigado @Simon Viegas ! Pensava que a funcao ia seguir minhas strings, sendo char..... O professor explicou terça, por isso to meio perdido........
  13. Para que? Para ser global? adicionado 1 minuto depois @Simon Viegas No caso eu pensei que o tam ia pegar o tamanho da string que foi digitada e nao o tamanho que eu atribuir a ela.
  14. @isrnick Porque voce mudou para void a funcao? E tirou o for? Eu pensei que precisava do for para percorrer o vetor de caracter, e sobre ser iguais é so um if, ou modificar o primeiro, colocando ou. if(strncmp(a, b, tam)<0 || strncmp(a, b, tam)==0)
  15. /**4. Crie um programa capaz de ler dois nomes de pessoas e imprimi-los em ordem alfabética. Faça isto com string de C e de C++.**/ #include <stdio.h> #include <string.h> #include <stdlib.h> main (){ char nome1[100], nome2[100]; printf("Informe o primeiro nome: "); gets(nome1); printf("Informe o segundo nome: "); gets(nome2); char ordem(); ordem(nome1, nome2); } char ordem(char a[100], char b[100]){ int tam=0,i=0,j=0, cont1=0, cont2=0, z=0; tam=strlen(a); for(i=0;i<tam;i++){ if(strncmp(a, b, tam)<0){ printf("A ordem e:\n %s.\n %s.\n", a,b); break; } if(strncmp(a, b, tam)>0){ printf("A ordem e:\n %s.\n %s.\n", b,a); break; } } } @isrnick @Simon Viegas Fiz dessa forma. Ta certo? Tem como enxugar mais? Algo assim. adicionado 3 minutos depois Okay.....
  16. @Simon Viegas Uai, pelo que entendi o strcmp() vai comparar a string ate o \0 e strncmp() ate onde eu especificar que é para comparar, vou delimitar a comparação nesse ultimo. Acho que é isso.
  17. @Simon Viegas Meio que acabei pesquisando sobre ele sim... Valeu.... (achei que era para ordenar pois vi em outros topicos o povo sugerindo strncmp invés de strcmp...rsrs)
  18. @isrnick Ah sim Pensei que ele era para ordenar kkkkkk Ôooo vida. kkkk Nele eu fiz dessa forma aí. if(strncmp(a, b, tam)>0) ----------- Mas talvez seja mais certo com a strncmp, vista que a primeira palavra possa ser menor...Num sei.
  19. @isrnick Thanks.!!! Mas eu acabei usando a strncmp() da bibblioteca string,h tambem.... Ela ja me devolve na ordem alfabetica. Na strcmp provavelmente teria que criar condicoes para chegar no resultado. adicionado 9 minutos depois na strcmp seria como? Mais ou menos dessa forma? for(i=0;i<tam;i++){ if(strcmp(a[i], b[i])==-1){ printf("A ordem e:\n%s. \n%s.\n", a,b); } if(strcmp(a[i], b[i])==1){ printf("A ordem e:\n%s. \n%s.\n", b,a); } } Assim ???
  20. @devair1010 Estou querendo colocar em ordem alfabetica. Mas lembrando que tem palavras que comecam com a mesma letra, entrao se elas fossem igual (primeira letra) passasse para a proxima (letra), para depois imprimir qual e menor. Acho que do jeito que estou fazendo eu estou usando a tabela ascci, nao? adicionado 30 minutos depois @devair1010 Opa, amigo. Valeu pela disposição..... Acho que consegui aqui. Usei uma funcao pronta da biblioteca que nem sabia que tinha !!!!
  21. Boa tarde, pessoal. Como estão? Gostaria de uma ajuda nesse exercicio, que é sobre ordenar as string em ordem alfabetica. Eu consegui que mostrasse em ordem, porém comparando somente a primeira letra das duas strings. Mas eu estava querendo comparar com as demais tambem, já que dois nomes podem comecar com a mesma letra. então eu fiz um contador, porém se a palavra é "baaa" e a outra "abbb", a primeira (baaa) que vai mostrar primeiro, ja que contem um maior numeros de letras menores que o segundo nome , mesmo comecando com a primeira letra maior que a primeira da segunda. (ESPERO QUE TENHAM ENTENDIDO, RSRSRS) Estava querendo que eles analisassem a primeira letra e se fosse iguais passassem para a segunda, contudo nao cheguei a nenhuma logica para a implementação. Segue meu codigo. /**4. Crie um programa capaz de ler dois nomes de pessoas e imprimi-los em ordem alfabética. Faça isto com string de C e de C++.**/ #include <stdio.h> #include <string.h> #include <stdlib.h> main (){ char nome1[100], nome2[100]; printf("Informe o primeiro nome: "); gets(nome1); printf("Informe o segundo nome: "); gets(nome2); char ordem(); ordem(nome1, nome2); } char ordem(char a[100], char b[100]){ int tam=0,i=0,j=0, cont1=0, cont2=0, z=0; tam=strlen(a); for(i=0;i<tam;i++){ j++; if(a[j]>b[j]){ //z++; cont1++; //exit(a[z]<b[z]); //printf("A ordem alfabetica e:\n%s.\n%s.\n", b, a); } if(a[j]<b[j]){ cont2++; //printf("A ordem alfabetica e:\n%s.\n%s.\n", a, b); } } if(cont1>cont2) printf("A ordem alfabetica e:\n%s.\n%s.\n", b, a); else printf("A ordem alfabetica e:\n%s.\n%s.\n", a, b); printf("\n\n"); }
  22. Isso esta me parecendo ponteiro. (Não cheguei a estudar ponteiro ainda). Mas estou dando uma olhado por fora.....
  23. @isrnick GENIAL... Mas, confesso que nao entendi por completo o que voce escreveu ai nao. (risos) Eu ainda nao entendo isso de deslocamento. << (realmente nao sei) E uma pergunta, como faço para saber o numero correspondente de uma letra? Fico feliz em saber que arrumou uma forma de resolver o problema... Agradecido.....
  24. Sim amigo, entendi (apesar de nao saber fazer isso AINDA ahahaha) Depois vou tentar implementar isso.
  25. Ah sim! Eu tentei usar no case > case strcmp("seg", str). Mas ai no caso nao funciona ....... Transformar o nome em numero da muito trabalho (nunca tentei, mas ja me deparei com alguns codigos que faziam isso). Com if else seria mais pratico......

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!