quinta-feira, 14 de junho de 2012

Alocação Dinâmica C


O algoritmo abaixo pedi ao usuário a quantidade de dias que deseja cadastrar, e em seguida as temperaturas dos respectivos dias, apos a leitura mostrar: "Temperatura dia 1 = 40, clima acima do normal " e "Temperatura dia 2 = 31, clima normal", o programa deve testar se há memoria disponível para alocação e libera-la apos o seu uso.

Veja o código já pronto, caso encontrem erros é só comentar abaixo.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
//By Edimael Freire
main(){
 int n; // variavel para receber a quantidades de dias a serem cadastradas
 int *temp; // para utilizarmos na alocação
 int *cont; // ponteiro contador
 printf("\nQuantos dias deseja cadastrar? ");
 scanf("%d",&n);
   temp = (int *)malloc(  (n) * sizeof(int) );//aloca e testa se ha memoria livre
   if( temp == NULL){
    printf("\nErro na reserva da memoria");
   }//fim do if
    else {
        cont = temp;
        for(int i = 0; i < n;i++){//bloco de leitura
         printf("Temperatura do dia %d:",i+1);
         scanf("%d",cont);
         cont = cont +1;
        }//fim do for
       }//fim do else
cont = temp;      
printf("\n\n");//dar espaco entre o bloco de letura e o de vizualização      
//mostra os dados lidos
  for(int i = 0; i <n;i++){
     if (*cont >= 40 ){
printf("Temperatura do dia  %d e %d clima ACIMA DO NORMAL\n", i+1,*cont);
cont = cont+1;
      }//fim do if
else{
           printf("Temperatura do dia  %d e %d clima NORMAL\n", i+1,*cont);
           cont = cont+1;
  }//fim o else
      free(temp); // liberar memoria alocada
}
     system("\nPAUSE>NULL");//da pause no siatema e não mosta a menssagem para continuar
}//fim do main

Um comentário:

CHAT FB.net