Ir para conteúdo

Arquivado

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

Madk

Limpeza de buffer

Recommended Posts

Estou com um problema que apos o resultado do bonus o programa nao vai para o printf "Informe o nome do cliente" ele desce direto pro printf de compras. Alguem sabe por que esta acontecendo isso?



/*Uma loja tem 15 clientes cadastrados e deseja enviar uma correspondecia a cada um deles anunciando um bonus especial.
Faca um programa que leia o nome do cliente e o valor de suas compras no ano passado. Calcule e mostre um bonus de 10%
se o valor das compras for menor que RS1000 e de 15%,caso contrario.*/
#include <stdio.h>
#include <string.h>
#include <conio.h>

int main(){
char nome[50];
float cp,bn;
int i;
for (i=1;i<=15;i++){
printf("\nInforme o nome do cliente: ");
scanf("%[^\n]s",nome);
printf("\nInforme o valor das compras: ");
scanf("%f",&cp);
if (cp<=1000)
bn=cp*10/100;
else
bn=cp*15/100;
printf("O cliente %s tem bonus de R$%4.2f\n",nome,bn);
}

getch();

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse bônus seria o valor da compra do ano passado incluindo 10% ou um desconto de 10%?

quanto a não printar a mesagem creio que seja problema com o buffer coloca esse comando fflush(stdin);

depois de cada leitura do teclado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou, eu pensava que usava o fflush(stdin); apenas depois do scanf do nome. Obrigado pela ajuda!

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.