我可以将一个结构相互放置吗?

时间:2019-11-27 20:47:18

标签: c struct

我需要解决这个练习。
我无法解决字母b)。 题: 使用结构 jogador (结构名称)和 selecao (结构名称)创建一个程序,该程序的名称为2 selecao(团队),每个名称为3个jogador(玩家)球队。

2个团队,每个都有3个玩家。

输入-Selecao Nome(团队名称)。

输入-Jogador Nome(玩家名称)        -Jogador idade(球员年龄)        -Jogador altura(球员身高)

输出-

a)未满18岁的球员人数。 b)每支球队的平均年龄 c)所有团队平均Heith

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct jogador {
    char nome[50];
    int idade;
    float altura;
 };
struct selecao { //struct aninhada
    char pais[50];
    struct jogador jog[3];
};

int main(){
    int i=0,j=0,k=0; // indices
    int count=0,countmedia=0; // countadores
    int menores18=0; // indice condicao
    float media=0,alturamedia=0,countaltura=0;// duas medias e um contador
    struct selecao s[2];
    for(j=0;j<2;j++) {   // for para coletar dados das seleções
        setbuf(stdin,NULL);
        printf("Digite o nome da selecao n.%d :",j+1);
        fgets(s[j].pais, 50, stdin);
        struct jogador jog[3];
        for(i=0;i<3;i++) { // for para coletar dados jogadores
            setbuf(stdin,NULL);
            printf("Digite o nome do jogador n.%d :",i+1);
            fgets(jog[i].nome, 50, stdin);
            printf("Digite a sua idade (somente número):");
            scanf("%d",&jog[i].idade);
            printf("Digite a sua altura (Ex. 1.70) :");
            scanf("%f",&jog[i].altura);
        }
       for (k=0; k<2; k++)  { // for para cálculos
           if(jog[k].idade <18)
               menores18++;
               countmedia += jog[k].idade;
               count++;
               media = (float)countmedia/count;
               countaltura += jog[k].altura;
               alturamedia= (float)countaltura/count;
        }   
   }
   printf("a) O numero de jogadores menores de 18 anos eh: %d\n",menores18);
   printf("b) A media de idade do jogadores eh: %f\n",media);
   printf("c) A altura media dos jogadores eh: %f\n",alturamedia);

    return 0;
}

0 个答案:

没有答案
相关问题