Bom gente, esse é meu primeiro script, é apenas para dar um start da minha participação no VOL.
Sem muita conversa, o script faz o seguinte: lê um valor, a quantidade de tipos de valores e quais são esses valores, fazendo o pagamento utilizando a menor quantidade de cédulas possível dentre as disponíveis.
// PAGAMENTO UTILIZANDO A MENOR QUANTIDADE DE CÉDULAS POSSÍVEIS
// Autor: Francisco Leandro Xavier (leandrox)
#include <stdio.h>
#include <stdio.h>
int main () {
int val, qtdtipnot;
printf("Digite o valor: ");
scanf("%d", &val);
printf("Digite a qtd. de valores de cedulas: ");
scanf("%d", &qtdtipnot);
float valnot[qtdtipnot];
int qtdvalnot[qtdtipnot];
for (int i = 1; i <= qtdtipnot; i++) {
printf("Digite qual a %da. maior nota: ", i);
scanf("%f", &valnot[i]);
}
for (int i = 1; i <= qtdtipnot; i++)
qtdvalnot[i] = 0;
int i = 1;
while (i <= qtdtipnot) {
while (val >= valnot[i]) {
val = val - valnot[i];
qtdvalnot[i] = qtdvalnot[i] + 1;
}
i++;
}
int j = 0;
for (int i = 1; i <= qtdtipnot; i++)
j = j + qtdvalnot[i];
printf("São utilizadas %d cédulas!\n", j);
for (int i = 1; i <= qtdtipnot; i++) {
if (qtdvalnot[i] != 0) {
printf("%d de R$ %0.2f\n", qtdvalnot[i], valnot[i]);
j = j + qtdvalnot[i];
}
}
return 0;
}
[1] Comentário enviado por felipeferreira em 22/03/2010 - 09:11h
fui tentar compilar, deu o seguinte erro:
pag_cedul_disp.c: In function ‘main’:
pag_cedul_disp.c:20: error: ‘for’ loop initial declarations are only allowed in C99 mode
pag_cedul_disp.c:20: note: use option -std=c99 or -std=gnu99 to compile your code
pag_cedul_disp.c:25: error: redefinition of ‘i’
pag_cedul_disp.c:20: note: previous definition of ‘i’ was here
pag_cedul_disp.c:25: error: ‘for’ loop initial declarations are only allowed in C99 mode
pag_cedul_disp.c:28: error: redefinition of ‘i’
pag_cedul_disp.c:25: note: previous definition of ‘i’ was here
pag_cedul_disp.c:40: error: redefinition of ‘i’
pag_cedul_disp.c:28: note: previous definition of ‘i’ was here
pag_cedul_disp.c:40: error: ‘for’ loop initial declarations are only allowed in C99 mode
pag_cedul_disp.c:45: error: redefinition of ‘i’
pag_cedul_disp.c:40: note: previous definition of ‘i’ was here
pag_cedul_disp.c:45: error: ‘for’ loop initial declarations are only allowed in C99 mode
[2] Comentário enviado por leandrox em 22/03/2010 - 10:47h
Felipe , compilei várias vezes e executou sem problemas.
Declare o i apenas no início do programa, e veja se roda legal, :)
Me informe um próximo erro, se ocorrer!
_______________________________________________________________
#include <stdio.h>
#include <stdio.h>
int main () {
int val, qtdtipnot;
int i = 0;
printf("Digite o valor: ");
scanf("%d", &val);
.
.
.
[3] Comentário enviado por tonyfrasouza em 31/08/2013 - 12:54h
Depois de muito tempo mas posso ajudar também.
Aconteceu comigo ao declarar a variável "i" diretamente dentro do bloco "for".
Declarar a variável "i" fora do bloco "for" resolve.
Para título de curiosidade e caso queria manter a declaração da variável "i" dentro do bloco "for" e aparecer a requisição do modo C99, faça:
gcc -std=c99 programa.c -o programa
ou:
gcc -std=gnu99 programa.c -o programa