Ir ao conteúdo

Leonardo Naressi

Membro Júnior
  • Posts

    13
  • Cadastrado em

  • Última visita

Reputação

9
  1. @arfneto Estou tentando passar os números múltiplos de 3 da pilha1 para a pilha2 e os que não são para a pilha3, para posteriormente colocá-los de volta na pilha1. Uso o Dev-C++.
  2. @arfneto Isso mesmo, este é o problema estava tentando compreender e corrigir o meu erro mas realmente estou trancado.
  3. @arfneto Certo esta parte eu entendi, o problema esta sendo que não estou conseguindo passar os parâmetros corretamente. while(p1 != NULL){ if(p1->dados % 3 == 0){ push(p2,pop(p1));//pega o topo de pilha 1 para a pilha 2 }else{ push(p3,pop(p1));//pega o topo de pilha 1 para a pilha 3 } } O que devo passar como parâmetro? Apresenta o seguinte erro: [Error] cannot convert 'pilha*' to 'pilha**' for argument '1' to 'int pop(pilha**, int*)'
  4. @arfneto O procedimento que retira os valores múltiplos de 3 da pilha, não eta funcionando.
  5. #include <stdio.h> #include <conio.h> #include <malloc.h> struct pilha{ int dados; struct pilha *proximo; }; //Constroi a pilha void push(struct pilha **topo,int valor, int *status){ struct pilha *p; p = (struct pilha *) malloc (sizeof(struct pilha)); if (p == NULL){ *status=0; }else{ p->dados=valor; p->proximo=*topo; *topo=p; *status=1; } } //Desempilha a pilha int pop(struct pilha **topo, int *status){ struct pilha *p,*aux; int valor; aux=*topo; if(aux == NULL){ *status=0; }else{ valor=aux->dados; p=aux; aux=p->proximo; free(p); *topo=aux; *status=1; return valor; } } //Mostrando a Pilha void mostra_pilha(struct pilha **p1){ struct pilha *aux; aux=*p1; while(aux != NULL){ printf("\nValores Pilha -> %i\n",aux->dados); aux=aux->proximo; } } //Remover numeros multiplos de 3 void retira_multiplos_de_3(struct pilha *p1,struct pilha **p2){//não estou conseguindo passar os parametros de forma correta acredito ser este o erro while(p1 != NULL){ if(p1->dados % 3 == 0){ push(p2,pop(p1));//pega o topo de pilha 1 para a pilha 2 }else{ push(p3,pop(p1));//pega o topo de pilha 1 para a pilha 3 } } }while(p1 != NULL){ push(p1,pop(p3));//coloca de volta os numeros não mutiplos de 3 para a pilha 1 } // PROGRAMA PRINCIPAL; int main(){ int valor,ok; struct pilha *p1=NULL; struct pilha *p2=NULL; struct pilha *p3=NULL; // Construindo PILHA 1 printf("\nPara encerrar digite 0"); do{ printf("\nInforme numeros a serem empilhados na 1° pilha: "); scanf("%d", &valor); if(valor!= 0){ push(&p1,valor,&ok); if(ok==0){ printf("\nErro de alocacao! "); } } }while (valor!=0); printf("\n----------------------------------"); printf("\nPilha 1° construida com sucesso!!"); printf("\n----------------------------------\n"); printf("----------------------------------"); printf("\nPilha 1: "); mostra_pilha(&p1); printf("----------------------------------"); retira_multiplos_de_3(&p1,&p2)//não estou conseguindo passar os parametros de forma correta acredito ser este o erro printf("\nPilha 2: "); mostra_pilha(&p2); }
  6. Obrigado a todos consegui graças a ajuda de vocês concluir o programa.
  7. package somaimpares; import java.util.Scanner; public class Somaimpares { public static void main(String[] args) { int impar=0; int x; do{ Scanner input= new Scanner(System.in); System.out.println("\nInforme um numero maior que zero: "); impar=input.nextInt(); if (impar>0){ int soma=0; for(x=0;x<=impar;x++){ if(x%2!=0) soma=soma+x; } System.out.println("A soma dos numeros imapares é:" +soma); } }while(impar>0); if(impar<=0){ System.out.println("Informe um numero valido: "); } } } Consegui estava colocando apos o while, quando devia colocar o laço antes
  8. Continuo errando.... package somaimpares; import java.util.Scanner; public class Somaimpares { public static void main(String[] args) { int impar=0; int soma=0; int x; do{ Scanner input= new Scanner(System.in); System.out.println("Informe um numero maior que zero: "); impar=input.nextInt(); }while(impar>0); for(x=1;x<=impar;x++){ if(impar%2!=0){ soma=soma+impar;} System.out.println("A soma dos numeros imapares é:" +soma); } if(impar<=0){ System.out.println("Informe um numero valido: "); } } }
  9. package somaimpares; import java.util.Scanner; public class Somaimpares { public static void main(String[] args) { int impar=0; int soma=0; do{ Scanner scan= new Scanner(System.in); System.out.println("Informe um numero maior que zero: "); impar=scan.nextInt(); if(impar<=0){ System.out.println("Não são permitidos numeros negativos ou zero!"); } }while(impar%2!=0); soma=soma+impar; System.out.println("A soma dos numeros imapares é:" +soma);//por que não esta sendo apresentado o valor somado acima } } Dado um número inteiro positivo fornecido pelo usuário, informe a soma dos números ímpares entre 0 e o número informado pelo usuário. Nota: o úsuário não poderá informar números negativos, nem 0. Caso ele informe, informar uma mensagem de erro.
  10. @devair1010 Ok obrigado vou continuar "refinando" ele agora, to aprendendo mais com você que na universidade.
  11. #include <stdio.h > #include <string.h> #include <locale.h> #include <stdlib.h> #include <conio.h > float media(float a1) { float resultado=0; resultado=a1/12;//media por doze pois é o total de partidas disputadas return resultado; } int main(){ char jogador[5][5][30], nome[30], compara[30];/*nome com ate 30 cracteres*/ int o=5, n=5, o2,j=5; /* não esquecer de inicializar as posições */ float jogos[o][n],gols[o][n],km[o][n], total;/*pois para declarar vetor precisa saber o valor */ float cartaoamarelo[o][n],cartaovermelho[o][n]; setlocale(LC_ALL,"portuguese"); while( o!= 0){ printf("Selecione o time:\n"); printf("1 - Chapecoenses\n" ); printf("2 - Portuguesa\n" ); printf("3 - Bragantino\n" ); printf("4 - Juventude\n" ); printf("0 - Para sair\n" ); fflush(stdin); scanf("%d",&o); if( o == 0){ printf("Você concluiu o cadastro!\n\n"); break; } else if(o<0 || o>4) //se uma das opções for verdadeira executa printf("Opção nvalida!!!\n\n"); /* tive que colocar essa condiçao pois estava saindo ...*/ else{ /* "Você concluiu o cadastro!" e "opção invalida" ao mesmo tempo */ printf("Cadastre 5 jogadores:\n");/* cadastro de ate 5 jogadores */ printf("\n--------------------------------\n"); for(j=0;j<5;j++){ /* está 1 mas depois de testar colocar 5 */ printf("Nome do %d° jogador : ",j+1); fflush(stdin);//para limpar o "enter" da variavel e evitar erros caso de errro substituir por scanf("%s%*c",&jogador[o][j]) gets(jogador[o][j]);//caso usuario digite o nome completo usando o espaço printf("Numero de jogos disputados pelo jogador %s : ",&jogador[o][j]); fflush(stdin);//para limpar o "enter" da variavel e evitar erros caso de errro substituir por scanf("%s%*c",&) scanf("%f",&jogos[o][j]); printf("Quantidade de gols marcados pelo jogador %s : ",&jogador[o][j]); fflush(stdin);//para limpar o "enter" da variavel e evitar erros caso de errro substituir por scanf("%s%*c",&) scanf("%f",&gols[o][j]); printf("Quantidade de cartoes amarelos : "); fflush(stdin);//para limpar o "enter" da variavel e evitar erros caso de errro substituir por scanf("%s%*c",&) scanf("%f",&cartaoamarelo[o][j]); printf("Quantidade de cartoes vermelhos : "); fflush(stdin);//para limpar o "enter" da variavel e evitar erros caso de errro substituir por scanf("%s%*c",&) scanf("%f",&cartaovermelho[o][j]); printf("Distancia que %s correu : ",&jogador[o][j]); fflush(stdin);//para limpar o "enter" da variavel e evitar erros caso de errro substituir por scanf("%s%*c",&) scanf("%f",&km[o][j]); } } } while( o2!= 0){ printf("Selecione a opção desejada:\n\n"); printf("1 - Estatistica de um jogador\n"); printf("2 - Estatistica de um time\n"); printf("3 - Estatistica do campeonato:\n"); printf("0 - Para sair\n"); fflush(stdin);//para limpar o "enter" da variavel e evitar erros scanf("%d",&o2); switch(o2){ case 1 : printf("\n\ninforme o nome do jogador : "); fflush(stdin);//para limpar o "enter" da variavel e evitar erros caso de errro substituir por scanf("%s%*c",&) gets(nome);//caso usuario digite o nome completo usando o espaço for(o=0;o<5;o++){ for(n=0;n<5;n++){ if(strcmp(jogador[o][n],nome)==0){/* usar string pra comparar */ printf("%s jogou %.2f partidas\n",jogador[o][n], jogos[o][n]); printf("%s marcou %.2f gols\n",jogador[o][n], gols[o][n]); printf("%s levou %.2f cartoes amarelos e %.2f vermelhos\n",jogador[o][n],cartaoamarelo[o][n], cartaovermelho[o][n]); printf("E a media de Km percorridos por jogo foi %.2f\n",km[o][n]/jogos[o][n]); if(o==1){ printf("\nEste jogador joga na chapeconse\n"); } if(o==2){ printf("\nEste jogador joga na Portuguesa\n"); } if(o==3){ printf("\nEste jogador joga na Bragantino\n"); } if(o==4){ printf("\nEste jogador joga na Juventude\n"); } } } } break; case 2 ://neste caso quero mostrar as estatisticas de um time selecionadopelo usuario //porém o programa esta encerrando no momento de executar esta opção //o programa esta encerrando printf("selecione o time desejado:\n"); printf("1 - Chapecoense\n" ); printf("2 - Portuguesa\n" ); printf("3 - Bragantinon\n" ); printf("4 - Juventude\n" ); fflush(stdin);//para limpar o "enter" da variavel e evitar erros scanf("%d",&o); for(o=o;o==o;o++){ for(n=0;n<1;n++){/* está 1 mas depois de testar colocar 5 */ total= total+ gols[o][n];//tem como fazer esta soma de valores usando uma função? } } printf("O numero total de gols foi %f\n",total); for(o=o2;o==o2;o++){ for(n=0;n<1;n++){/* está 1 mas depois de testar colocar 5 */ total= total+cartaoamarelo[o][n];//tem como fazer esta soma de valores usando uma função? } } printf("O numero total de cartões amarelos foram %f\n",total); for(o=o2;o==o2;o++){ for(n=0;n<1;n++){/* está 1 mas depois de testar colocar 5 */ total= total+cartaovermelho[o][n];//tem como fazer esta soma de valores usando uma função? } } printf("O numero total de cartões vermelhos foram %f\n",total); for(o=o2;o==o2;o++){ for(n=0;n<1;n++){/* está 1 mas depois de testar colocar 5 */ total= total+km[o][n];//tem como fazer esta soma de valores usando uma função? } } printf("O total da distancia percorrida foi %.4f metros\n",total); break; case 3: //neste caso quero mostrar as estaticas do campeonato no teste que fiz executou corrretamente for(o2=1;o2<5;o2++){/*para pegar os times de 1 á 4*/ for(n=0;n<5;n++){/* está 1 mas depois de testar colocar 5 */ total= total+ gols[o2][n];//tem como fazer esta soma de valores usando uma função? } } printf("O numero total de gols foi %.2f\n",total);//.2 é a quantia de numeros apos a virgula printf("E a media total de gols foram %.4f por partida\n",media(total));//chamando a função para apresentar o resultado for(o2=1;o2<5;o2++){/*para pegar os times de 1 á 4*/ for(n=0;n<5;n++){/* está 1 mas depois de testar colocar 5 */ total= total+cartaoamarelo[o2][n];//tem como fazer esta soma de valores usando uma função? } } printf("O numero total de cartões amarelos foram %.2f\n",total);//.2 é a quantia de numeros apos a virgula printf("E a media total de cartões amarelos foram %.4f por partida\n",media(total));//chamando a função para apresentar o resultado for(o2=1;o2<5;o2++){/*para pegar os times de 1 á 4*/ for(n=0;n<5;n++){/* está 1 mas depois de testar colocar 5 */ total= total+cartaovermelho[o2][n];//tem como fazer esta soma de valores usando uma função? } } printf("O numero total de cartões vermelhos foram %.2f\n",total);//.2 é a quantia de numeros apos a virgula printf("E a media total de cartões vermelhos foram %.4f por partida\n",media(total));//chamando a função para apresentar o resultado for(o2=1;o2<5;o2++){/*para pegar os times de 1 á 4*/ for(n=0;n<5;n++){/* está 1 mas depois de testar colocar 5 */ total= total+km[o2][n];//tem como fazer esta soma de valores usando uma função? } } printf("O total da distancia percorrida foi %.4f metros\n",total);//.4 é a quantia de numeros apos a virgula printf("E a media total da distancia percorrida no campeonato foi %.4f metros por partida\n",media(total));//chamando a função para apresentar o resultado break; case 0 : printf("Você encerrou o programa!\n\n"); default: if(o2!=0 && o2!=1 && o2!=2 && o2!=3 && o2!=4){//tive que colocar essa condiçao pois estava saindo ... printf("Opção invalida!!!\n\n");}//"Você concluiu o cadastro!" e "opção invalida" ao mesmo tempo break; printf("\n\n"); getch(); return 0; } } } Muito obrigado pela ajuda vou continuar o programa agora, valeu mesmo pela força. adicionado 3 minutos depois Fiz algumas alterações porém estou tendo dificuldade em imprimir as estatistas de um time, e de como usar função para somar os valores de uma matriz ( que no caso não sei se tem como fazer sem criar um "acumulador" para cada dado informado pelo usuário. Desde já agradeço pela ajuda. adicionado 8 minutos depois Desde já agradeço pela ajuda.@devair1010
  12. Muito obrigado pela ajuda vou continuar o programa agora, valeu mesmo pela força.
  13. #include <stdio.h> #include <string.h> #include <locale.h> #include <stdlib.h> #include <conio.h> int main(){ char jogador[5][5], nome[30], compara[30]; int o, n, o2;// com float da errado por que? float jogos[o][n], gols[o][n],cartaoamarelo[o][n], cartaovermelho[o][n], km[o][n]; setlocale(LC_ALL,"portuguese"); while(o!=0) {printf("Selecione o time:\n1 – Chapecoense\n2 – Portuguesa\n3 – Bragantinon\n4 – Juventude\n0 - Para sair\n"); scanf("%i",&o); switch(o){ case 1 :printf("Cadastre 5 jogadores: ");//cadastro de ate 5 jogadores for(n=0;n<1;n++){ printf("Informe o nome do jogador: e tecle enter...\n"); scanf("%s",&jogador[o][n]); printf("Informe o numero de jogos deste jogador: e tecle enter...\n"); scanf("%i",&jogos[o][n]); printf("Informe o numero de gols deste jogador: e tecle enter...\n"); scanf("%i",&gols[o][n]); printf("Informe o numero de cartoes amarelos: e tecle enter...\n"); scanf("%i",&cartaoamarelo[o][n]); printf("Informe o numero de cartoes vermelhos: e tecle enter...\n"); scanf("%i",&cartaovermelho[o][n]); printf("Informe a distancia que ele correu: e tecle enter...\n"); scanf("%f",&km[o][n]); } break; case 2 :printf("Cadastre 5 jogadores: ");//cadastro de ate 5 jogadores for(n=0;n<1;n++){ printf("Informe o nome do jogador: e tecle enter...\n"); scanf("%s",&jogador[o][n]); printf("Informe o numero de jogos deste jogador: e tecle enter...\n"); scanf("%i",&jogos[o][n]); printf("Informe o numero de gols deste jogador: e tecle enter...\n"); scanf("%i",&gols[o][n]); printf("Informe o numero de cartoes amarelos: e tecle enter...\n"); scanf("%i",&cartaoamarelo[o][n]); printf("Informe o numero de cartoes vermelhos: e tecle enter...\n"); scanf("%i",&cartaovermelho[o][n]); printf("Informe a distancia que ele correu: e tecle enter...\n"); scanf("%f",&km[o][n]); } break; case 3 :printf("Cadastre 5 jogadores: ");//cadastro de ate 5 jogadores for(n=0;n<1;n++){ printf("Informe o nome do jogador: e tecle enter...\n"); scanf("%s",&jogador[o][n]); printf("Informe o numero de jogos deste jogador: e tecle enter...\n"); scanf("%i",&jogos[o][n]); printf("Informe o numero de gols deste jogador: e tecle enter...\n"); scanf("%i",&gols[o][n]); printf("Informe o numero de cartoes amarelos: e tecle enter...\n"); scanf("%i",&cartaoamarelo[o][n]); printf("Informe o numero de cartoes vermelhos: e tecle enter...\n"); scanf("%i",&cartaovermelho[o][n]); printf("Informe a distancia que ele correu: e tecle enter...\n"); scanf("%f",&km[o][n]); } break; case 4 :printf("Cadastre 5 jogadores: ");//cadastro de ate 5 jogadores for(n=0;n<1;n++){ printf("Informe o nome do jogador: e tecle enter...\n"); scanf("%s",&jogador[o][n]); printf("Informe o numero de jogos deste jogador: e tecle enter...\n"); scanf("%i",&jogos[o][n]); printf("Informe o numero de gols deste jogador: e tecle enter...\n"); scanf("%i",&gols[o][n]); printf("Informe o numero de cartoes amarelos: e tecle enter...\n"); scanf("%i",&cartaoamarelo[o][n]); printf("Informe o numero de cartoes vermelhos: e tecle enter...\n"); scanf("%i",&cartaovermelho[o][n]); printf("Informe a distancia que ele correu: e tecle enter...\n"); scanf("%f",&km[o][n]); } break; case 0 : printf("Você concluiu o cadastro!\n\n"); break; default: if(o!=0&&o!=1&&o!=2&&o!=3&&o!=4){//tive que colocar essa condiçao pois estava saindo ... printf("Opção nvalida!!!\n\n");}//"Você concluiu o cadastro!" e "opção invalida" ao mesmo tempo break; } } printf("Selecione a opção desejada:\n\n1 – Estatistica de um jogador\n 2 – Estatistica dos times\n3 – Estatistica do campeonato:\n0 - Para sair\n"); scanf("%i",&o2); switch(o2){ case 1 : printf("\n\ninforme o nome deste jogador: "); scanf("%s",&nome); for(o=1;o<5;o++) for(n=0;n>1;n++){ if(strcmp(jogador[o][n],nome)==0){//usar string pra comparar printf("%s jogou %i partidas",jogador[o][n], jogos[o][n]);//94 32 C:\Users\User\Downloads\Trabalho G2 rodando.cpp [Error] invalid conversion from 'char' to 'const char*' [-fpermissive] printf("%s marcou %i gols",jogador[o][n], gols[o][n]); printf("%s levou %i cartoes amarelos e %i vermelhos",jogador[o][n], cartaoamarelo[o][n], cartaovermelho[o][n]); printf("E a media de Km percorridos por jogo foi %f",jogador[o][n], km[o][n]/jogos[o][n]); } } } }

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!