// define os valores de um parcelamento #include // printf/scanf #include // malloc/free int main() { long centavos, numero, iterador, atual, *parcelas; double reais; // pede um valor do total em reais printf("Valor total em reais: "); scanf("%lf", &reais); centavos = reais * 100; // calcular em centavos é "redondo" // pede o número de parcelas printf("Número de parcelas: "); scanf("%ld", &numero); // aloca o número de parcelas parcelas = (long *) malloc(numero * sizeof(long)); // determina o valor de cada parcela, sempre deduzindo do total o que já foi calculado for(iterador = numero - 1; iterador >= 0; iterador--) { atual = centavos / (iterador + 1); // o valor atual é a parte inteira da divisão parcelas[iterador] = atual; centavos -= atual; // aqui, na última iteração, será exatamente a quantidade que faltava } // imprime cada parcela for(iterador = 0; iterador < numero; iterador++) { printf("Parcela %d: R$ %.2f.\n", iterador + 1, ((double) parcelas[iterador]) / 100.0); } // libera a memória e sai do programa com o código 0 (sucesso) free(parcelas); return 0; }