Ir ao conteúdo
  • Cadastre-se

Leonardo Naressi

Membro Júnior
  • Posts

    14
  • Cadastrado em

  • Última visita

posts postados por Leonardo Naressi

  1. @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*)'

    • Curtir 1
  2. #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);
    }

     

    • Curtir 1
  3. 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();
      }
    }
    

     

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

  5. 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: "); 


    }


        
        }
    }

     

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

     

  7. #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
    5 minutos atrás, Leonardo Naressi disse:
    
    #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.

    Desde já agradeço pela ajuda.@devair1010

    • Obrigado 1
  8. #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]);
      			}
    		}
    	}
    }
    	

     

    • Obrigado 1

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!