best 0 Denunciar post Postado Abril 30, 2009 Problema: Uma loja tem 15 clientes cadastrados e deseja enviar uma correspondencia a cada um deles anunciando um bonus especial. Faça 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 R$ 1000,00 e de 15%, caso contrário. eu consegui faze algo, mais ele da um problema ele não faiz a repetição correta dentro do for, como teria q fica? vlw Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Abril 30, 2009 poste oq conseguiu entaum.. []s Compartilhar este post Link para o post Compartilhar em outros sites
best 0 Denunciar post Postado Abril 30, 2009 fiz isso: int i; char nome[80]; float compra, bonus; for(i=1; i<=15; i++) { printf("\n Nome cliente: "); scanf("%c", &nome); printf("\n Valor da compra: "); scanf("%f", &compra); if(compra<=1000) bonus=compra*0.1; else bonus=compra*0.15; printf("\n Bonus: %2.2f", bonus); } Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Abril 30, 2009 1ª coisa q observei é a leitura do nome: tem q ser assim: scanf("%s%*c", nome); e oq o programa naum ta fazendo, pq o for ta fazendo 15 iterações normal. []s Compartilhar este post Link para o post Compartilhar em outros sites
best 0 Denunciar post Postado Abril 30, 2009 era esse mesmo o problema... vlw Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Abril 30, 2009 ;d Compartilhar este post Link para o post Compartilhar em outros sites
Zeca na ativa 1 Denunciar post Postado Setembro 25, 2009 Galera... Buenos Dias... Estou com uma pequena dúvida... estou dando uma olhada no codigo.. e é o seguinte: Foi criado laço de repetição para ser mostrado 15 vezes a variavel nome, e valor certo ? A variavel nome é uma array com 80 posições certo ? se eu por por exemplo 5 posições q um valor menor das repetições ele consegui pegar esse valores, pq ? Descula a ignorancia mas eh q estou iniciando em C. Tava me eskecendo, a linha "scanf("%s%*c", nome);" porque foi usado o %s% e *c, e não so o "%c" ? Desde já agradeço pela ajuda que estão me dando Abraços, Zeca. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Setembro 25, 2009 Bom como você disse nome é um array de char então para a leitura usamos '%s'; sobre o '%*c', ele é um token para excluir o '\n' q as vezes fica no final da string; veja: http://forum.imasters.com.br/index.php?/topic/336835-tutorial-systempause-e-fflushstdin/ e... não entendi sua primeira dúvida :s []s Compartilhar este post Link para o post Compartilhar em outros sites
Zeca na ativa 1 Denunciar post Postado Setembro 28, 2009 quitZAUMMM, Buenas madrugadas rs... Então a minha primeira dúvida é o seguinte, o nosso amigo definir o laço com 15 rotação certo ? mas a variavel nome está com um array de [80], ok ? O certo não seria 15 valores também ? Abraços, Zeca Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Setembro 28, 2009 Digamos que a variavel nome esta em modo linear vai. pq a cada iteração ela mudará seu valor, o 80 foi o valor que quem programou deixou para ser o maximo de caracteres permitidos naquele char[]; se você quiser armazenar o nome a cada iteração e a cada novo nome ainda ter o antigo você tem 2 opções: ou usa uma matriz de char[], ou usa um vetor de strings! []s Compartilhar este post Link para o post Compartilhar em outros sites
Zeca na ativa 1 Denunciar post Postado Setembro 29, 2009 HUmmmmm entendi show de bola.. Obrigado pela ajuda... Abraços. Zeca Compartilhar este post Link para o post Compartilhar em outros sites
Zeca na ativa 1 Denunciar post Postado Setembro 29, 2009 quitZAUMMM, Usei o codigo "****scanf ("%s%*c", nome);****" mas coloquei da seguinte maneira: scanf ("%s% * c", nome); ou seja com espaço e percebi que não funfou... só estou colocando aqui para mostrar o erro que fiz. Abraços, E valeu mais uma vez galera. Abraços, Zeca. Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Setembro 29, 2009 Mas não haveria de funcionar mesmo. A função usa os espaços para determinar os tokens a serem trocados. Por exemplo, na string: "teste %3d %.1f %s\n" Ele pegará os tokens:3d, .1f e s Se você fizer: "%s% * c" Os tokens serão:s e NULO, pois após o último '%' não há nada. Compartilhar este post Link para o post Compartilhar em outros sites