Ir ao conteúdo
  • Cadastre-se

Leonardo Naressi

Membros Juniores
  • Total de itens

    14
  • Registro em

  • Última visita

  • Qualificações

    N/D
  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. a) Um procedimento para inserir um nodo após o nodo K; b) Uma função para remover o nodo após o nodo K; c) Uma função para remover o nodo K. Eu montei as funções mas no momento de chamar elas não estão sendo executadas, se alguém poder dar uma ajuda agradeço! /* ================================================= */ /* Exemplo de implementacao Listas Simplesmente Enc. */ /* Exercicios da apostila */ /* Profa Fabiana Lorenzi */ /* Estruturas de Dados I */ /* ================================================= */ #include <stdio.h> #include <conio.h> #include <malloc.h> /* estrutura da Lista Simplesmente Encadeada...*/ struct nodo { int dados; struct nodo *proximo; }; void insere_esquerda(struct nodo **inicio, struct nodo **fim, int valor, int *sinal); void insere_antes_de_k (struct nodo **inicio, struct nodo *k, int valor , int *sinal); void insere_antes_do_quarto (struct nodo **inicio, int valor , int *sinal); void insere_apos_de_k (struct nodo **inicio, struct nodo **fim, struct nodo *k, int valor, int *sinal); void remove_apos_de_k (struct nodo **inicio, struct nodo **fim, struct nodo *k, int *sinal); void remove_o_k (struct nodo **inicio, struct nodo **fim, struct nodo *k, int *sinal); int conta (struct nodo *lista); /*-------------------------------------------------*/ /* Insere antes do quarto */ /*------------------------------------------------*/ void insere_antes_do_quarto (struct nodo **inicio, int valor, int *sinal) { int x; struct nodo *p, *aux; if (conta(*inicio)<4){ printf("Erro... lista não possui 4 nodos!!!"); *sinal=0; } else { p=(struct nodo*)malloc(sizeof(struct nodo)); if(p) p->dados=valor; aux=*inicio; for (x=2;x<3;x++){ aux=aux->proximo; p->proximo=aux->proximo; aux->proximo=p; *sinal=1; } } } /*===========================Fim do meu============================================*/ /* ================================================================================*/ /*===================================================================================*/ /*========================Insere apos o K o maior elemento============================================*/ void insere_apos_de_k (struct nodo **inicio, struct nodo **fim, struct nodo *k, int valor, int *sinal) { struct nodo *aux, *p; if (*inicio) //Se a lista não está vazia { p= (struct nodo *) malloc (sizeof(struct nodo)); if (p == NULL) //Se não foi possível alocar espaço em memória *sinal = 0; else { p->dados = valor; aux = *inicio; while (aux!=k && aux != NULL ) { aux = aux->proximo; } if (aux != NULL)//testa se encontro o K { if(k==*fim) { p->proximo=*fim; *fim=p; } else { p->proximo=k->proximo; k=p->proximo; *sinal = 1; } } else { *sinal=0; free (p); } } }else *sinal=0; } /*=============================fim=============================*/ /*======================Remover o k============================*/ void remove_o_k (struct nodo **inicio, struct nodo **fim, struct nodo *k, int *sinal) { struct nodo *aux, *p; if (*inicio==NULL) //Se a lista estiver vazia { *sinal = 0; } else { aux = *inicio; p=*inicio; do{ p=aux; aux=aux->proximo; }while (aux!=k && aux != NULL ); if(aux==*fim){//aux esta com valor de k p=aux->proximo;//p esta com o valor que anterior de k free(aux); } else { p->proximo=aux->proximo; free(p); } *sinal=1; } } /*========================FIM=========================*/ /*===============Excluir apos o K o maior elemento==================*/ void remove_apos_de_k (struct nodo **inicio, struct nodo **fim, struct nodo *k, int *sinal) { struct nodo *aux, *p; if (*inicio==NULL) //Se a lista estiver vazia { *sinal = 0; } if (*fim==k) //Se o k for o fim da lista { *sinal = 0; } else { aux = *inicio; p=*inicio; do{ aux=p; p=p->proximo; }while (aux!=k && aux != NULL ); if(*fim==p){//aux esta com valor de k k=*fim; free(p); } else { k->proximo=aux->proximo; free(p); } *sinal=1; } } /*==========================FIM=============================*/ /* Insere um nodo a esquerda (no inicio)*/ /* ==================================== */ void insere_esquerda(struct nodo **inicio, struct nodo **fim, int valor, int *sinal) { struct nodo *p; p = (struct nodo *) malloc (sizeof(struct nodo)); if (p) { p->dados=valor; p->proximo=*inicio; *inicio = p; if (fim==NULL) *fim = p; *sinal=1; } else *sinal=0; } /* =============================== */ /* Insere um nodo antes do nodo K; */ void insere_antes_de_k (struct nodo **inicio, struct nodo *k, int valor , int *sinal) { struct nodo *ant, *aux, *p; if (*inicio) //Se a lista não está vazia { p= (struct nodo *) malloc (sizeof(struct nodo)); if (p == NULL) //Se não foi possível alocar espaço em memória *sinal = 0; else { p->dados = valor; aux = *inicio; while (aux != k && aux != NULL) //Percorre a lista até achar o nodo k ou até chegar ao fim da lista. { ant = aux; aux = aux->proximo; } if (aux != NULL) { if (k==*inicio) { p->proximo=*inicio; *inicio=p; *sinal = 1; } else { ant->proximo = p; p->proximo = k; } *sinal = 1; } else //não encontrou k { *sinal= 0; free(p); } } //se reservou memoria para p } else *sinal= 0; //nao existe lista } /* ====================================================================== */ /* funcao que conta quantos elementos tem a lista simplesmente encadeada. */ /* ====================================================================== */ int conta (struct nodo *lista) { int cont=0; while (lista != NULL) { cont = cont+1; lista=lista->proximo; } return cont; } /* ====================================================================== */ /* funcao que retorna o nodo com maior elemento da lista simp. encadeada. */ /* ====================================================================== */ struct nodo *maior_valor (struct nodo *lista) { int ma=0; struct nodo *p, *ant; if (lista == NULL) { p=NULL; } else { ma=lista->dados; p=lista; /* guarda o end. do nodo, caso o maior seja o 1o. nodo da lista */ ant=lista; lista=lista->proximo; while (lista != NULL) { if (lista->dados > ma) /* procura o maior valor da lista... */ { ma = lista->dados; /* guarda o valor em MA */ p = ant->proximo; /* guarda o endereco do maior valor em P */ } ant=lista; lista=lista->proximo; } } return p; /* funcao sempre retorna valor. */ } /* =============================================== */ /* Procedimento para mostrar o conteudo da lista. */ /* =============================================== */ void mostra_lista (struct nodo *lista) { struct nodo *aux; aux=lista; while (aux != NULL) /* Enquanto nao for final da lista... */ { printf("Valores-> %i\n",aux->dados); aux=aux->proximo; } } /* =============================================== */ /* Procedimento que libera todo conteudo da lista */ /* =============================================== */ void libera_lista (struct nodo **lista) { struct nodo *aux, *p; aux=*lista; while (aux != NULL) /* Enquanto nao for final da lista... */ { p=aux; aux=aux->proximo; free(p); } } /* Programa principal */ int main() { int num, ok; // variavel global que representa o sinal struct nodo *l1i=NULL, *l1f=NULL, *lk=NULL; // l1i = inicio da lista // l1f = final da lista // lk = lista que armazena o endereco do nodo K /* Este trecho do programa serve para que o usuario digite varios valores (ate digitar 0) que serao armazenados na lista (insercao no inicio da lista). */ printf("\nPara encerrar a insercao digite 0 !"); do { printf("\nInforme um valor. : "); scanf("%d",&num); if (num != 0) { insere_esquerda(&l1i, &l1f, num, &ok); if (ok == 0) printf("\nErro de alocacao de memoria..."); } } while (num != 0); /* O procedimento mostra_lista serve para mostrar o conteudo da lista que está sendo passada como parametro. */ mostra_lista(l1i); getch(); /* Este trecho do programa serve para que o valor digitado pelo usuario seja inserido ANTES do nodo que tem o maior valor. */ printf("\nInforme outro valor: (insercao antes o maior elemento da lista(K)): "); scanf("%d",&num); if (num != 0) { /* a variável global lk representa o K. a funcao maior_valor é chamada e o endereco do nodo com o maior valor é armazenado na variavel global lk (K). */ lk=maior_valor(l1i); /* Chamada do procedimento Insere_antes_de_k ========================================= Neste exemplo, o valor digitado pelo usuario sera incluido antes do nodo que tem o maior valor (ou seja, a posicao K eh a posicao do nodo que armazena o maior valor da lista. */ insere_antes_de_k(&l1i, lk, num, &ok); if (ok == 0) // se deu erro de alocacao de memoria... printf("\nErro de alocacao de memoria..."); mostra_lista(l1i); getch(); printf("Informe um numero para ser inserido antes do 4 nodo:"); scanf("%d",&num); if (num != 0) { insere_antes_do_quarto(&l1i, num, &ok); if (ok == 0) // se deu erro de alocacao de memoria... printf("\nErro de alocacao de memoria..."); mostra_lista(l1i); } /* Neste exemplo, o valor digitado pelo usuario sera incluido apos o nodo que tem o maior valor (ou seja, a posicao K eh a posicao do nodo que armazena o maior valor da lista. */ printf("\nInforme outro valor: (insercao apos o maior elemento da lista(K)): "); scanf("%d",&num); if (num != 0) { lk=maior_valor(l1i); insere_apos_de_k(&l1i, &l1f, lk, num, &ok); if (ok == 0) // se deu erro de alocacao de memoria... printf("\nErro de alocacao de memoria..."); mostra_lista(l1i); } //Seria para excluir o maior elemento e mostrar a lista printf("Valor apos o maior elemento (k)excluido!!"); remove_apos_de_k (&l1i, &l1f, lk, &ok); if (ok==0) { printf("\nLista não pussui 2 elementos..."); mostra_lista(l1i); } //Para remover o nodo K printf("Maior elemento (k)excluido!!"); remove_o_k(&l1i, &l1f, lk, &ok); if (ok==0) { printf("\nLista esta vazia..."); mostra_lista(l1i); } libera_lista(&l1i); getch(); } }
  7. Obrigado a todos consegui graças a ajuda de vocês concluir o programa.
  8. 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
  9. 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: "); } } }
  10. 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.
  11. @devair1010 Ok obrigado vou continuar "refinando" ele agora, to aprendendo mais com você que na universidade.
  12. #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
  13. Muito obrigado pela ajuda vou continuar o programa agora, valeu mesmo pela força.
  14. #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 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

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!