Pular para o conteúdo

Arquivo com números aleatórios.

Gera um arquivo com 3 colunas de n números aleatórios definidos pelo usuário.
Thiago thiagoamm
Hits: 10.407 Categoria: C/C++ Subcategoria: Manipulação de arquivos
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Gera um arquivo com 3 colunas de n números aleatórios definidos pelo usuário.
Download num_aleatorio.c Enviar nova versão

Esconder código-fonte

/*
 * Autor: Thiago A. M. Monteiro
 * Data: 24/08/2007
 * Alteracao:
 * OBS: Faca o que quiser mas mantenha a autoria.
 */


#include <stdio.h>
#include <stdlib.h>


int main (int argc, char *argv[])
{
  char caracter;
  int i, n;
  double x, y, z;
  int *vetor = NULL;
  FILE *arquivo;
  
  system ("clear");
  
  if (argc < 2)
  {
    printf ("Pow informa o nome do arquivo baitôla!\n");
    system ("sleep 3");    
    system ("clear");
    exit(1);
  }
  
  printf ("\nInforme a quantidade de elementos do conjunto: ");
  scanf  ("%d", &n);
  
  vetor = (int*) malloc (n * sizeof (int) );
  
  if (!vetor)
  {
    printf ("\nIh! Dançou este pc nao alocou memoria pra teu vetor.\n");
    system ("sleep 3");
    system ("clear");
    exit (1);
  }
      
 if ( !(arquivo = fopen (argv[1], "w") ) )
 {
   printf ("\nFalha ao abrir o arquivo.");
   system ("sleep 3");
   system ("clear");
   exit (1);
 }



/*
  A função rand() gera uma sequência de valores que se repete igual a si própria sempre que o programa é executado.
Isto, porque, a semente da sequência é sempre a mesma (1)!
 Para que produza-se uma sequência diferente é necessário, mudar a semente usando a função srand(), cujo argumento inteiro (sem sinal) é a nova semente e que não retorna nenhum valor.

srand(41);

 Se se pretender uma sequência diferente, sempre que o programa é executado, e o utilizador não seja obrigado a introduzir a semente, podemos usar uma função que retorna o valor do relógio do computador em segundos (e cujo protótipo está em time.h):

srand(time(NULL));
*/
     
srand ( time(NULL) );
  
  for (i = 1; i <= n; i++)
  {
    fprintf (arquivo, "%.2f ", ( (double) rand() ) / RAND_MAX);
    
    if (i % 3 == 0)
      fprintf (arquivo, "\n");
  }
  
  fclose (arquivo);  
  system ("clear");
    
  return 0;
}

Exemplo de manipulação de arquivos

Agenda eletrônica completa em C

Organizador de filmes para o IMDB

NetAgenda 0.04

Contribuir com comentário

Entre na sua conta para comentar.