Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

camila_argollo

Problemas com If

Recommended Posts

O programa é esse:

 

Faça um programa que:

• receba 10 nomes de produtos e armazene-os em um vetor;

• receba o estoque de cada um destes produtos em cada um dos 5 armazéns e armazene-os em uma matriz 5 x 10.

• receba o custo dos 10 produtos e armazene-os em um outro vetor;

•Calcule e imprima o nome do produto e o número do armazém que possui o menor número de itens estocados;

 

Eu já fiz até aki:

 

#include <stdio.h>
#include <conio.h>

void main ()
{
   char nome [10][20];
   int tot=0,produto,armazem, quantia[5][10], menor;
   float valor[10];

   for (produto=0;produto<10;produto++)
   {
	   printf("Informe o nome do produto %d : ",produto);
	   gets(nome[produto]);
   }

   printf("\n");

   for(armazem=0;armazem<5;armazem++)
   {
	   for(produto=0;produto<10;produto++)
	   {
		   printf("Informe a quantidade de %s no armazem %d: ",nome[produto],armazem);
		   scanf("%d",&quantia[armazem][produto]);
	   }
	   printf("\n");
   }

   for (produto=0;produto<10;produto++)
   {
	   printf("Informe o valor do produto %d: ",produto);
	   scanf("%f",&valor[produto]);

 

Só que eu não sei como fazer para calcular e imprimir o nome do produto e o número do armazém, já tentei algumas vezes com "If" mas não consigo fazer funcionar.

Me ajudem a terminar aí

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tantei fazer o resto mas ainda não funciona

Ficou assim:

 

#include <stdio.h>
#include <conio.h>

void main ()
{
char nome [10][20];
int produto=0,armazem=0,quantia[5][10],menor=quantia[0][0];
float valor[10];

for (produto=0;produto<10;produto++)
{
printf("Informe o nome do produto %d : ",produto);
gets(nome[produto]);
}

printf("\n");

for(armazem=0;armazem<5;armazem++)
{
for(produto=0;produto<10;produto++)
{
printf("Informe a quantidade de %s no armazem %d: ",nome[produto],armazem);
scanf("%d",&quantia[armazem][produto]);
}
printf("\n");
}

for (produto=0;produto<10;produto++)
{
printf("Informe o valor do produto %d: ",produto);
scanf("%f",&valor[produto]);
}




for(armazem=0;armazem<5;armazem++)
for(produto=0;produto<10;produto++)
if (quantia[armazem][produto]<menor) 
{
menor=quantia[armazem][produto];//sempre salva o menor
armazem=armazem;
produto=produto; 

} 
printf("\nO nome do produto: %s\n",nome[produto]);
printf("\nO numero do armazem: %d",armazem);





printf("\n");
system("pause");

}

Está dando um erro em que ele não está imprimindo o nome do produto e numero do armazem só esta imprimindo o valor "5".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não use gets(nome[produto]);

 

 

armazem=armazem;
produto=produto;

 

você acha mesmo que vai funcionar, já que é a mesma variável do for?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, viu. não utilize as mesmas variáveis que estão no for... crie uma outra para guardar o menor armazem e o menor produto!

 

vlww???

 

 

[EDIT]

 

Tava respondendo quando o Import java.Isis respondeu =], malz ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

A Isis ja respondeu, mas falta uma coisa...

Inicializa a variável "menor" com algum valor. quantia[0][0] ainda não é nada.

 

menor = 10000000

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não inicialize a variável sem nem saber o que vai ser digitado. Use o primeiro valor da matriz, já que se menor = 100.000 e se a menor quantia estocada for > 100.000 o programa não funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A isis está certa, me esqueci disso. Peço desculpas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.