Dúvida em como fazer um programa em C

1. Dúvida em como fazer um programa em C

Hisashi Tsutsui
Tsutsui

(usa Outra)

Enviado em 25/11/2013 - 13:10h

Estava eu treinando programação em linguagem C. Monte um minimundo de como irei fazer este programa. Mas, para a minha infelicidade, eu estou tendo dúvida no meu próprio minimundo que criei. Neste minimundo, eu planejei usar vetores e matrizes. Abaixo eu colocarei as regras e a minha tentativa que tive de fazer (até certo ponto aonde parei...). (Estou usando o programa DEV C++, versão 5.0.0.9)

--------------------------------------------------------------------------------------------

Construir um programa em C que leia o código, o nome e o preço de 10 produtos e armazene esses dados em três vetores, um para o código, um para o nome e um para o preço e imprima um relatório com o código, nome, preço e novo preço dos produtos, seguindo as regras a seguir:

- Os produtos com preço abaixo de R$ 100,00 serão atualizados em 12%
- Os produtos com preço igual ou superior a R$ 100,00 serão atualizados em 15%
- Imprimir o nome do produto com maior preço atualizado
- Imprimir o código do produto com menor preço atualizado

Observações:

- Não permitir preço negativo ou zero
- Declaração e leitura dos vetores

--------------------------------------------------------------------------------------------
Abaixo segue o meu programa:

#include <stdio.h>

main() {
int cod[10], i;
char nome[10];
float prc[10];

for (i = 0 ; i <= 9 ; i++) {
printf("\nDigite o codigo do produto %d: ", i + 1);
scanf("%d", &cod[i]);
printf("\nDigite o nome do produto %d: ", i + 1);
gets(nome);
printf("\nDigite o preco do produto %d: ", i + 1);
scanf("%d", &prc[i]);

if (prc[i] < 100)
prc[i] = prc[i]*1.12;
else
prc[i] = prc[i]*1.15;


printf("\nCodigo do produto: %d", cod[i]);
printf("\nNome do produto: %s", nome[i]);
printf("\nO preco atualizado eh: %.1f\n\n", prc[i]);
}

getch();
}




  


2. Re: Dúvida em como fazer um programa em C

???
gokernel

(usa Linux Mint)

Enviado em 25/11/2013 - 15:54h

Olá !

Em vez de usar isso:
int cod[10], i; char nome[10]; float prc[10];

Ficaria mais organizado/eficiente usar ( struct ):


struct Tproduto
{
int cod;
char nome[20]; // aqui trocaria por um *ponteiro
float prc;
};

struct Tproduto lista[10];



Veja algo sobre "struct".

T+.


3. Re: Dúvida em como fazer um programa em C

???
gokernel

(usa Linux Mint)

Enviado em 25/11/2013 - 16:06h

E só para te orientar, o correto seria assim:

printf("\nDigite o codigo do produto %d: ", i );

scanf("%d", &cod [ i ] );


4. Re: Dúvida em como fazer um programa em C

Hisashi Tsutsui
tsutsui

(usa Outra)

Enviado em 25/11/2013 - 16:39h

Obrigado pela sua resposta. Mas porque não teria vetor no preço e no código?


5. Re: Dúvida em como fazer um programa em C

???
gokernel

(usa Linux Mint)

Enviado em 25/11/2013 - 16:52h

Na realidade isso já seria o "vetor":
struct Tproduto lista[10];

E isso que vc fez está errado:
char nome[10];

Mude para isso:
char nome[10] [10];


6. Re: Dúvida em como fazer um programa em C

???
gokernel

(usa Linux Mint)

Enviado em 25/11/2013 - 17:02h

E para "armazenar" informações na lista direto seria assim:

lista[ 0 ].cod = 123;
strcpy( lista[ 0 ].nome, "feijão");
lista [ 0 ].prc = 4.50;

lista[ 1 ].cod = 222;
strcpy( lista[ 1 ].nome, "arroz");
lista [ 1 ].prc = 2.50;

lista[ 2 ].cod = 333;
strcpy( lista[ 2 ].nome, "farinha");
lista [ 2 ].prc = 3.99;

...


7. Re: Dúvida em como fazer um programa em C

Hisashi Tsutsui
tsutsui

(usa Outra)

Enviado em 25/11/2013 - 17:02h

Obrigado. Eu já corrigi o erro do char. A minha dúvida eu esqueci de postar. observe a image abaixo:

http://i.imgur.com/vkHTc3q.jpg

Quando eu digito o código do produto, logo abaixo, a função gets() passa direto sem eu ter oportunidade de digitar o nome. Pois bem, eu digito o preço, e logo após isso, ele ainda faz o cálculo errado... E quando eu passo para as informações do segundo produto, ele logo pula o código, o nome e pede para eu inserir o preço. Isto está ficando muito complicado! E tudo isso, é dentro da estrutura do For, pois terei que armazenar 10 dados de 10 produtos.


8. Re: Dúvida em como fazer um programa em C

Hisashi Tsutsui
tsutsui

(usa Outra)

Enviado em 25/11/2013 - 17:06h

E como eu ainda não conheço estes novos códigos que você me passou, eu não poderei aplicar-los, pois ainda não os aprendi. Até hoje aprendi os seguintes códigos: printf, scanf, for, while, do...while, if, if...else, vetores e matrizes.


9. Re: Dúvida em como fazer um programa em C

???
gokernel

(usa Linux Mint)

Enviado em 25/11/2013 - 17:21h

Para eu nao REfazer o código por vc, vou apenas informar o que esta errado....

Para ler/escrever mude para isso:
----------------
cod [ i ]

nome [ i ]

prc [ i ]
---------------

Dentro do loop !




10. Re: Dúvida em como fazer um programa em C

???
gokernel

(usa Linux Mint)

Enviado em 25/11/2013 - 17:30h

@tsutsui:
"E como eu ainda não conheço estes novos códigos que você me passou, eu não poderei aplicar-los, pois ainda não os aprendi. Até hoje aprendi os E como eu ainda não conheço estes novos códigos que você me passou, eu não poderei aplicar-los, pois ainda não os aprendi. Até hoje aprendi os seguintes códigos: printf, scanf, for, while, do...while, if,if...else, vetores e matrizes. códigos: printf, scanf, for, while, do...while, if,if...else, vetores e matrizes."

Tudo bem meu caro... não esquentar não, no começo eh assim mesmo !

Estou aqui para tentar te ajudar... com calma e paciência.

Eh um prazer para mim ajudar um iniciante e principalmente um que demonstra que quer realmente aprender de verdade.

T+.


11. Re: Dúvida em como fazer um programa em C

Hisashi Tsutsui
tsutsui

(usa Outra)

Enviado em 25/11/2013 - 17:37h

gokernel escreveu:

Para eu nao REfazer o código por vc, vou apenas informar o que esta errado....

Para ler/escrever mude para isso:
----------------
cod [ i ]

nome [ i ]

prc [ i ]
---------------

Dentro do loop !



Eu estou fazendo com estes dentro do loop. O problema de pular o gets(), do cálculo errado e pular o código e o gets() do próximo ainda persistem. Abaixo está o código que estou usando neste exato momento:

------------------------------------------------------------------------------------

#include <stdio.h>

main() {
int cod[10], i;
char nome[10][10];
float prc[10];

for (i = 0 ; i <= 9 ; i++) {
printf("Digite o codigo do produto %d: ", i + 1);
scanf("%d", &cod[i]);
printf("\nDigite o nome do produto %d: ", i + 1);
gets(nome);
printf("\nDigite o preco do produto %d: ", i + 1);
scanf("%d", &prc[i]);

if (prc[i] < 100)
prc[i] = prc[i]*1.12;
else
prc[i] = prc[i]*1.15;


printf("\nCodigo do produto: %d", cod[i]);
printf("\nNome do produto: %s", nome[i]);
printf("\nO preco atualizado eh: %.1f\n\n", prc[i]);
}

getch();
}

------------------------------------------------------------------------------------


12. Re: Dúvida em como fazer um programa em C

???
gokernel

(usa Linux Mint)

Enviado em 25/11/2013 - 18:32h


REPITO:

Para ler/escrever NOS VETORES mude para isso:
----------------
cod[ i ]

nome [ i ]

prc [ i ]
---------------

Dentro do loop !



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts