Ir ao conteúdo

Posts recomendados

Postado
#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
Postado

@Leonardo Naressi     seu código está bom , mas você está repetindo partes do código que não tem necessidade , e para pegar dados float precisa usar o f no scanf , e a matriz jogador precisa de mais uma dimensão para que ela receba string ( com mais de hum caractere ) , pois do jeito que você colocou ela só recebe char ( apenas hum caractere )  ,  lá em cima não é por que é float que não está dando certo não , é por que para declarar vetor / matriz precisa colocar o valor e como sua variável n não foi inicializada o vetor não a reconhece ,  então seu código com algumas modificações poderia ser assim  :

#include <stdio.h >
#include <string.h>
#include <locale.h>
#include <stdlib.h>
#include <conio.h >
int main(){
	char jogador[5][5][30], nome[30], compara[30];
	int o=5, n=5, o2,j;                   /* com float da errado por que ? */
	float jogos[o][n],gols[o][n],km[o][n];/* 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 - Chapecoense\n"  );
        printf("2 - Portuguesa\n"   );
        printf("3 - Bragantinon\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)                       /* 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 */
            else{
                printf("Cadastre 5 jogadores:\n");/* cadastro de ate 5 jogadores */
                for(j=0;j<1;j++){                 /* está 1 mas depois de testar colocar 5 */
                    printf("nome do jogador %d : ",j+1);
                    fflush(stdin);
                    scanf("%s",jogador[o][j]);

                    printf("numero de jogos deste jogador %d : ",j+1);
                    fflush(stdin);
                    scanf("%f",&jogos[o][j]);

                    printf("quantidade de gols deste jogador %d : ",j+1);
                    fflush(stdin);
                    scanf("%f",&gols[o][j]);

                    printf("quantidade de cartoes amarelos : ");
                    fflush(stdin);
                    scanf("%f",&cartaoamarelo[o][j]);

                    printf("quantidade de cartoes vermelhos : ");
                    fflush(stdin);
                    scanf("%f",&cartaovermelho[o][j]);

                    printf("distancia que ele correu : ");
                    fflush(stdin);
                    scanf("%f",&km[o][j]);
            }
        }
    }
   	printf("Selecione a opção desejada:\n\n");
    printf("1 - Estatistica de um jogador\n");
    printf("2 - Estatistica dos times\n");
    printf("3 - Estatistica do campeonato:\n");
    printf("0 - Para sair\n");
   	fflush(stdin);
   	scanf("%d",&o2);
   	switch(o2){
   	    case 1 :
   	        printf("\n\ninforme o nome do jogador : ");
   	        fflush(stdin);
   	        scanf("%s",nome);
   	        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]);/* 94	32	C:\Users\User\Downloads\Trabalho */
                                                                                       /* G2 rodando.cpp	[Error] invalid */
                                                                                       /*conversion from 'char' to 'const char*' [-fpermissive]*/
                        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",km[o][n]/jogos[o][n]);
                    }
                }
	        }
    }
    printf("\n\n");
    getch();
    return 0;
}

 

  • Curtir 1
  • Obrigado 1
Postado
#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
Postado

@Leonardo Naressi    você pode colocar uma função para calcular os resultados , mas nesse caso não precisa pois para calcular dentro da função main é mas fácil , você coloca um laço de repetição para calcular todos de uma vez ,  então seu código com algumas modificações pode ser assim :

#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=1,j=5,gols[o][n],total=0,jogos[o][n];/* não esquecer de inicializar as posições */
	int T_jogos,T_c_ama,T_c_verm;
	float km[o][n],T_dist ;/*pois para declarar vetor precisa saber o valor */
	int cartaoamarelo[o][n],cartaovermelho[o][n];
    setlocale(LC_ALL,"portuguese");
    for(j=0;j<5;j++){
        for(n=0;n<5;n++){
            strcpy(jogador[j][n]," \0");
            gols[j][n]=0;
            jogos[j][n]=0;
            cartaoamarelo[j][n]=0;
            cartaovermelho[j][n]=0;
            km[j][n]=0;
        }
    }
    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<1;j++){                 /* está 1 mas depois de testar colocar 5 */
                    printf("Nome do %d%c jogador  : ",j+1,167);
                    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("%d",&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("%d",&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("%d",&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("%d",&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]);
                    printf("\n");
            }
        }
    }
    total   = 0;
    T_jogos = 0;
    T_dist  = 0;
    T_c_ama = 0;
    T_c_verm= 0;
    for(o2=0;o2<5;o2++){                 /*  para calcular os resultados */
        for(n=0;n<5;n++){                
            total   += gols[o2][n];      /* tem como fazer esta soma de valores usando uma função? */
            T_jogos += jogos[o2][n];    /* aqui substitui afunção de calcular  */
            T_dist  += km[o2][n];
            T_c_ama += cartaoamarelo[o2][n];
            T_c_verm+= cartaovermelho[o2][n];
        }
    }

    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",(float)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);
            printf("O numero total de gols foi --> %d\n",total);
            printf("O numero total de cartões amarelos foram ----> %d\n",T_c_ama);
            printf("O numero total de cartões vermelhos foram ----> %d\n",T_c_verm);

            printf("O total da distancia percorrida foi ----------> %.2f metros\n",T_dist);
            break;
        case 3: /*neste caso quero mostrar as estaticas do campeonato no teste que fiz executou corrretamente*/
            printf("O numero total de gols foi -------------------> %d\n",total);/*.2 é a quantia de numeros apos a virgula*/
            printf("E a media total de gols no campeonato foram --> %.2f por partida\n",(float)total/T_jogos);/*chamando a função para apresentar o resultado*/

            printf("O numero total de cartões amarelos foram -----> %d\n",T_c_ama);/*.2 é a quantia de numeros apos a virgula*/
            printf("E a media total de cartões amarelos foram ----> %.2f por partida\n",(float)T_c_ama/T_jogos);/*chamando a função para apresentar o resultado*/

            printf("O numero total de cartões vermelhos foram ----> %d\n",T_c_verm);/*.2 é a quantia de numeros apos a virgula*/
            printf("E a media total de cartões vermelhos foram ---> %.2f por partida\n",(float)T_c_verm/T_jogos);/*chamando a função para apresentar o resultado*/

            printf("O total da distancia percorrida foi ----------> %.2f metros\n",T_dist);/*.4 é a quantia de numeros apos a virgula*/
            printf("E a media total da distancia percorrida no campeonato\n");
            printf("foi ------------------------------------------> %.2f metros por partida\n",
                         (float)T_dist/T_jogos);                /*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;
}

 

  • Curtir 1
  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!