Ir ao conteúdo
  • Cadastre-se

C Média em C com vetores


MQTTH
Ir à solução Resolvido por devair1010,

Posts recomendados

 

'Gere um cálculo de preço médio de um galão de tinta de 5 fornecedores para que sejam utilizados vetores para armazenar o nome do fornecedor e o seu respectivo preço'

 

Necessito fazer este exercício, só que estou em dúvida em como irei fazer o vetor para armazenar o nome do fornecedor, o código que já fiz é: 

 

<

#include <stdio.h>
#include <locale.h>

    int main ()
{
    setlocale(LC_ALL, "Portuguese");
    
     float valor[5], media;
       int i;
       char resposta;

do
   {
      media=0;
  
      printf("Cálculo de Preço Médio\n\n");
    
      for(i=0;i<5;i++)
          {
                 printf("Digite o preço do fornecedor: ",i+1);
         scanf("%f",&valor[i]);
        }
        
    for(i=0;i<5;i++)
         media = media + valor[i];
     
      media = media/5;
      
       printf("\n\nO preço médio é: %.2f", media);
     
      printf("\n\nDeseja continuar?");
      scanf("%s",&resposta);
    
}
   while(resposta=='S'); 
}

>

Link para o comentário
Compartilhar em outros sites

1 hora atrás, devair1010 disse:

@MQTTH    o vetor para armazenar o nome do fornecedor é do tipo string , que na linguagem c se trata de um vetor de char , então


char nome_fornecedor[5][30]; //  pode armazenar ayé cinco nome de 29 caracteres cada um

 

Você pode dar ideia de como iria aplicar isto ao meu código ? Porque eu tentei utiliza-lo mas dava erro 

Link para o comentário
Compartilhar em outros sites

3 horas atrás, devair1010 disse:

@MQTTH    o vetor para armazenar o nome do fornecedor é do tipo string , que na linguagem c se trata de um vetor de char , então


char nome_fornecedor[5][30]; //  pode armazenar ayé cinco nome de 29 caracteres cada um

 

int main ()
{
    setlocale(LC_ALL, "Portuguese");
    
 
     float valor[5], media;
       int x,y;
       char resposta;
    int nome_fornecedor[5] = {1,2,3,4,5};
    
do
   {
      media=0;
      
    
      for(x =0, y= 0 ;x<5, y<5;x++, y++)
          {
            printf("Digite o preço do fornecedor %d: ", nome_fornecedor [y], x+1);
             scanf("%f",&valor[x]);
        }

 

consegui fazer, deixei o código pra caso alguém tenha uma dúvida parecida. Obrigado irmão.

Link para o comentário
Compartilhar em outros sites

@MQTTH     desculpe  ,  mas o código que você postou não funciona ,  creio que a parte de pegar o preço e o nome poderia ser assim  :

#define _CRT_SECURE_NO_WARNINGS
#define cls system("cls");
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include <iomanip>
int main()
{
    setlocale(LC_ALL, "Portuguese");
    label_1:
        cls
        float valor[5] = { 0 }, media = 0, total = 0;
        char nome_fornecedor[5][30] = { 1,2,3,4,5 };
        int i;
        char resposta[21];
        printf("Calculo de Preco Medio\n\n");
        for (i = 0; i < 5; i++)
        { 
            printf("preco do fornecedor: ", i + 1);
            scanf("%f", &valor[i]);
            while (char c = fgetc(stdin) != '\n');// limpar o buffer do teclado por que o scanf não pega o newline "\n"
            printf("nome do fornecedor: ", i + 1);
            fgets(nome_fornecedor[i], 29, stdin);//fgets ja pega o newline
            nome_fornecedor[i][strlen(nome_fornecedor[i]) - 1] = '\0';
            total += valor[i];
        }
        media = total / 5;
        printf("\n\nDeseja continuar ( sim / nao )");
        fgets(resposta, 20, stdin);
        resposta[strlen(resposta) - 1] = '\0';
        printf("\n\n");
        if (strcmp(resposta, "sim") == 0)
            goto label_1;
        return 0;
}

 

Link para o comentário
Compartilhar em outros sites

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