Ir ao conteúdo

C Média em C com vetores


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

 

'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'); 
}

>

  • Solução
Postado

@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

 

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

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

Postado

@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;
}

 

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!