Ir ao conteúdo
  • Cadastre-se
italoufmg

Arranjo na linguagem c

Recommended Posts

Pessoal, sou iniciante na linguagem C, e estou tentando fazer o programa a seguir:

 

Considere que uma empresa comercial, que tem n lojas especializadas de certo tipo de material, te contratou para fazer o seguinte programa em C.

A empresa tem dados armazenados sobre o número de vendas realizadas em cada loja. Não importa qual tipo de material, a empresa está interessada apenas no número de unidades vendidas.

A empresa quer um programa que leia, do dispositivo de entrada padrão, o valor de n, em seguida n valores v1, …, vn que correspondem ao número de unidades vendidas em um mês nas lojas de 1 a n, respectivamente, e imprima, no dispositivo de saída padrão, quais foram as lojas de 1 a n nas quais o número de unidades vendidas foi maior ou igual à média de unidades vendidas em suas lojas.

 

Comecei a fazer o programa e deu erro:

 

#include <stdio.h>
#include <stdlib.h>
float media ( int UnidVend[], int n){
      int i, soma =0;
      for (i=0; i<n; i++) soma += UnidVend;
      return ((float) soma)/n ;
}
int main(){
    int n; int *UnidVend; int i=0;
    printf( " Digite o numero de lojas \n");
    scanf("%d", &n);
    UnidVend = malloc(n*sizeof(int));
    printf ( " \n\n Digite o numero de vendas de cada loja \n");
    for (i=0; i<n; i++) scanf("%d", &UnidVend);
      if ((UnidVend) >= (media(UnidVend,n)))
      printf( "A loja vendeu mais que a média\n", UnidVend);
  return (0);
}

 

Podem me ajudar a resolver este algoritmo?

 

Editado por dif
O código DEVE ser postado dentro da tag CODE <>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para mexer em um ponteiro você tem que somar a posição dele, se não vai ficar só usando a primeira posição.

Para acessar o valor:

Citação

soma += *(UnidVend+i);

Para receber o valor:

Citação

scanf("%d", (UnidVend+i);

Para comparar com a media, porém não é necessário ficar chamando a função média toda vez, é melhor guardá-la em uma variável para não ficar consumindo processo. E tem que ficar dentro de um ciclo for:

Citação

for(i=0;i<n;i++) if (*(UnidVend+i) >= (media(UnidVend,n)))

printf( "A loja vendeu mais que a média\n", *(UnidVend+i));

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×