tsutsui
(usa Outra)
Enviado em 26/11/2013 - 18:54h
Eu estava a fazer um programa que seguisse as devidas exigências:
------------------------------------------------------------------------------------------------------
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
------------------------------------------------------------------------------------------------------
Eis o meu código abaixo:
#include <stdio.h>
main() {
int cod[ 10 ], i;
char nome[ 10 ][ 30 ], nome2[ 10 ];
float preco[ 10 ], prc2, novopreco[ 10 ];
for (i = 0 ; i <= 9 ; i++) {
fflush(stdin);
printf("\nDigite o nome do produto [ %d ]: ", i + 1);
gets(nome[ i ]);
printf("Digite o codigo do produto [ %d ]: ", i + 1);
scanf("%d", &cod[ i ]);
printf("Digite o preco do produto [ %d ]: ", i + 1);
scanf("%f", &preco[ i ]);
while (preco[ i ] <= 0) {
printf("PRECO INVALIDO!!!");
printf("\nDigite o preco do produto [%d] novamente: ", i + 1);
scanf("%f", &preco[ i ]);
}
}
for (i = 0 ; i <= 9 ; i++) {
if ( preco[ i ] < 100 )
novopreco[ i ] = preco[ i ] * 1.12;
else
novopreco[ i ] = preco[ i ]*1.15;
printf("\nNome do produto [ %d ]: %s", i + 1, nome[ i ]);
printf("\nCodigo do produto [ %d ]: %d", i + 1, cod[ i ]);
printf("\nO preco atualizado do produto [ %d ] eh: %.1f\n\n", i + 1, novopreco[ i ]);
}
for (i = 0 ; i <= 9 ; i++) {
if (novopreco[ i ] > prc2) {
prc2 = novopreco[ i ];
nome2[ i ] = nome[ i ];
}
}
fflush(stdin);
printf("O nome do produto do maior preco atualizado: %s", nome2);
printf("\nO maior preco atualizado eh: %.1f", prc2);
getch();
}
------------------------------------------------------------------------------------------------------
O meu problema é que ele não mostra o nome certo. Alguém teria a solução para isto?