Ja que fizesteo codigo e como tambei dei C xD Para que serve o "malloc" ?
http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.13.html#mallocSe deste C, falaste em apontadores, certo?
Partindo do pressuposto que sim, a função
malloc aloca um bloco de memória do tamanho do argumento da função e devolve um apontador para esse bloco de memória.
Memória dinâmica serve, por exemplo, para situações onde não sabes de quanta memória vais precisar. Ou situações onde trabalhas com pouca memória e tens de ter "mão" naquilo que utilizas. Um exemplo (mais uma vez, pode não compilar, não o testei):
#include <stdlib.h>
#include <stdio.h>
int main(){
int *numeros = NULL;
int nalloc = 0;
int elementos = 0;
int x;
int i;
// Recolher numeros ate ser introduzido um 999
while(x != 999){
fprintf(stdout, "Introduz um numero:\n");
fscanf(stdin, "%d", &x);
// Se o tamanho do bloco de memoria for insuficiente, aumentar o tamanho do bloco
if(elementos >= nalloc){
nalloc += 10;
numeros = (int *)realloc((int *)numeros, nalloc * sizeof(int));
if(numeros == NULL){
fprintf(stderr, "Esgotei memoria, %d elementos\n", elementos);
exit(1);
}
}
numeros[elementos++] = x;
}
fprintf(stdout, "Numeros introduzidos:\n");
for( i = 0; i < elementos; i++){
fprintf(stdout, "%d, ", numeros[i]);
}
// Libertar o bloco de memoria para evitar um (hipotetico) "leak" de memoria
free(numeros);
}
Repara que o tamanho do bloco de memória vai sendo aumentado consoante vai sendo necessário. Se estiver complicado, diz.
Zompixau, o que tu pediste foi para te fazerem o trabalho de casa. Se o teu problema é a sintaxe, toma:
http://www.acm.uiuc.edu/webmonkeys/book/c_guide/O problema é que isto de aprender a programar dá trabalho. Uma coisa é apresentares dúvidas específicas - outra é pedires para te fazerem o trabalho.
Aposto contigo que se abrires um site como este:
http://www.programmingsimplified.com/c-program-examplesE fizeres algumas experiências, em 2 ou 3 horas tinhas uma solução tua, funcional para o problema que me apresentaste.
Só se aprende a programar dando à unha e batendo (frequentemente) com a cabeça na parede.
Neste problema em específico basta-te teres uma noção muito elementar do que é uma variável - inteira e de virgula flutuante -, que operações aritméticas podes fazer e um papel e caneta para resolveres o problema.
Coloca a resolução num papel, vais ver que depois passar para C é
peanuts...