Ir ao conteúdo
  • Cadastre-se

Programa em c , média da sala


Posts recomendados

olá pessoal , preciso de uma ajuda com o seguinte problema :

 

Uma classe é um conjunto de alunos que possuem comportamentos e desempenhos distintos entre si. Apesar disto, é interessante acompanhar o desemprenho da sala como um único grupo. Suponha, sem perder a generalidade, que estejamos acompanhando uma sala de pós-graduação; o tamanho desta é, normalmente, diminuto. O que faremos, entretanto, vale para salas de qualquer tamanho. Para entendermos o desempenho da sala, podemos fazer cálculo de alguns parâmetros:

a) Média da sala: Trata-se da média aritmética da sala

b ) Range de notas: Trata-se da diferença entre a maior nota e a menor nota

c) Distribuição da sala: Trata-se de calcular e imprimir:

         c1) Quantas notas estão acima da média da sala e;

         c2) Quantas notas estão abaixo da média da sala.

 

Faça um programa em C que leia o desempenho, uma nota entre 0.0 e 10.0, dos 10 alunos, calcule e imprima o pedido acima:

 

Exemplificando:       6.5    8.5    7.5    5.5    4.5    9.5    9.0    8.0    7.0    6.0

                                 0       1       2        3       4      5        6       7       8       9

 

a ) Média da sala: 7.2( pois temos (6.5+8.5+7.5+5.5+4.5+9.5+9.0+8.0+7.0+6.0)/10 )

b ) Range de notas: 5.0 ( pois temos 9.5 – 4.5 = 5.0 )

C -- c1 )Notas acima da média da sala: 5

       c2 )Notas abaixo da média da sala: 5

 

 

e resumindo , eu só consegui fazer a média da sala, como eu faço para fazer o item b e c ???  segue abaixo o código : 

#include<stdio.h>                                                                              

void main()                                                                                     
{
    int nota[1][10];                                                                              
    float med, soma;                                                                         
    int x,y;                                                                                   
    printf(" Este programa calcula a media de notas\n");       
    printf("\n\n Entre com os valores das notas:\n\n");                            
    for(x = 0; x <1; x ++)                                                                   
        {
            for(y = 0; y <10; y ++)                                                           
            {
            printf(" nota[%d][%d]=",x+1,y+1);                                                
            scanf("%d",&nota[x][y]);                                                                         }
        }
    soma = (nota[0][0] + nota[0][1] + nota[0][2] + nota[0][3] + nota[0][4] + nota[0][5] + nota[0][6] + nota[0][7] + nota[0][8] + nota[0] [9]);  
    med= soma / 10;
   
printf("A media da sala e : %.2f\n", med);                                           

}


 

Link para o comentário
Compartilhar em outros sites

Olá, para o segundo caso eu fiz assim:

(Só lembrando eu criei esse ai do zero então as variáveis estão diferentes do seu, mas ai e só fazer as alterações necessárias)

 

#include <stdio.h>

int main()
{
    int e, a;
    float i[13];
    for (e=0; e<10; e++)
        scanf("%f", &i[e]);
    i[11] = 0;
    for (e=0, a=0; e<10; e++)
    {
        a++;
        if (i[e]>=i[a]){
            i[10] = i[e];
            if (i[10]>i[11]){
                i[11] = i[10];
                    }
        }
    }

    i[12] = i[11];

    for (e=0, a=0; e<10; e++)
    {
        a++;
        if (i[e]<=i[a]){
            i[10] = i[e];
            if (i[10]<i[12]){
                i[12] = i[10];
                    }
        }
    }

    printf("\n\nO resultado e %.2f - %.2f = %.2f", i[11], i[12], i[11]-i[12]);
    system("PAUSE");
    return 0;
}

Deve haver uma maneira mais fácil que essa, mas foi a unica que veio na minha cabeça.

 

Para a letra C é só usar um for com um if e else colocando caso seja > ou < tal valor

Link para o comentário
Compartilhar em outros sites

4 horas atrás, Victor Medeiros da Silva disse:

b ) Range de notas: 5.0 ( pois temos 9.5 – 4.5 = 5.0 )

simplesmente crie 2 variáveis uma chamada maior e outra menor que irão guardar logicamente o o maior e o menor valor respectivamente. É só recorrer todas as posições do array e para guardar o maior numero é só fazer algo como:

maior = 0;
for ( x = 0; x < 1; x ++ ) {
    for ( y = 0; y < 10; y ++ ) {
        if ( nota[x][y] > maior ) {
            maior = nota[x][y];
        }
    }
}


para o menor é a mesma coisa

menor = nota[0][0];
for ( x = 0; x < 1; x ++ ) {
    for ( y = 0; y < 10; y ++ ) {
        if ( nota[x][y] < menor ) {
            menor = nota[x][y];
        }
    }
}
4 horas atrás, Victor Medeiros da Silva disse:

C -- c1 )Notas acima da média da sala: 5

       c2 )Notas abaixo da média da sala: 5

Esse exercício é a mesma coisa que os outros anteriores, você precisa recorrer todas as posições e usar contador para ir anotando cada nota que está abaixo e acima da media.

 

for ( x = 0; x < 1; x ++ ) {
    for ( y = 0; y < 10; y ++ ) {
        if ( nota[x][y] < 5 ) {
            abaixo++;
        }else{
            acima++;
        }
    }
}

 

 

Link para o comentário
Compartilhar em outros sites

//~b & c
#include <stdio.h>
#include <stdlib.h>
int maior( float,float );
int menor( float,float );
int compa( unsigned char,float[],int (*)( float,float ) );
float range( unsigned char,float[] );
void  media( unsigned char,float[] );
int main( void )
{
  float notas[ 10 ] = { 6.5,8.5,7.5,5.5,4.5,9.5,9.0,8.0,7.0,6.0 };

  media( 10,notas ),
  printf( "%s%.1f\n\n", "Range de notas: ", range( 10,notas ) );
  system( "pause" );

  return 0; //~Compile
}


//~Definição de função
//~Compara dois valores retorna x para função maior ou menor
int compa(unsigned char t, float n[], int (*func)( float,float ) )
{
  unsigned char p = 0; //~Posição do maior ou menor valor
  while( t-- ){ if( func( n[t],n[p] ) ) p = t; }
  return( p );
}

//~Função retorna diferença da maior e menor nota
float range( unsigned char t, float n[] )
{
  return( n[ compa( t,n,maior ) ] - n[ compa( t,n,menor ) ] );
}

//~Função retorna o maior valor do vetor
int maior( float x,float y ){ return( x > y ); }

//~Função retorna o menor valor do vetor
int menor( float x,float y ){ return( x < y ); }

//~Função contabiliza e exibe n. de medias
void media( unsigned char t, float n[] )
{
  unsigned char buf = t;
  float med = .0f;

  //~Soma das notas
  while( t-- )med = n[ t ] + med;

  //~Media das notas
  med = med / buf;

    t = buf; //~Restituindo o contador
    //~Contabilizando o n. de Maior e Menor nota que média
    unsigned char ma = 0, me = 0;
    while( t-- )
      if( n[ t ] > med ) ma = ma + 1; else
      if( n[ t ] < med ) me = me + 1; else
      continue;

   //~Exibir na tela os resultados:
   printf("%s\n",
   "-------------------------------------");
   printf( "%s%d\n%s%d\n",
   "Notas  acima da media da sala: ",ma ,
   "Notas abaixo da media da sala: ",me );


  return;

}

Como se trata de um tarefa simples, não vejo problema em faze-lo por completo e coloquei um elemento coringa ponteiro de função, algo interessante de trabalhar.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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