Gerando Matriz aleatoriamente

Publicado por Junior 01/11/2007

[ Hits: 16.059 ]

Download exemplo_5.cpp




Gera uma matriz aleatoriamente (5X6) e imprime X caso os números sejam pares.

Bem interessante para quem está começando em C.

  



Esconder código-fonte

/* Fazer um programa para gerar aleatoriamente uma matriz (5 x 6), mostrar os numeros pares e os números impares mostrar X */
  
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define lin 5
#define col 6
int main()
{
    int matriz [lin][col];
    int i, j; 
    
    for (i = 1; i <= lin; i++)
    {
        for (j = 1; j <= col; j++)
        {
            srand(time(NULL));
            _sleep(800);
            matriz[i][j]=rand()%9+1;
            if ((matriz[i][j] % 2) == 0)
                printf("%2d",matriz[i][j]);
            else
                printf(" X");
        }
    printf("\n");
    }
    getch();
}

Scripts recomendados

Multiplicação de matrizes com indireção múltipla

Calcula valor da prestação atrasada

Validador de Cartão de Credito

Lista ligada simples, algoritmos de inserção, busca e impressão

Mini - agenda


  

Comentários
[1] Comentário enviado por elgio em 01/11/2007 - 09:52h

Amigo, teu código tem OVERFLOW!

for (i = 1; i <= lin; i++)
...
for (j = 1; j <= col; j++)
matriz[i][j]=rand()%9+1;

Isto vai fazer ele comecar em matriz[1][1] sem FAZER o matriz[0][0].

Se for uma matriz 4x5 a Ultima linha é a 3, não 4, e a ultima coluna é 4 não 5.

m[0][0], m[0][1], m[0][2], m[0][3], m[0][4]
m[1][0], m[1][1], m[1][2], m[1][3], m[1][4]
m[2][0], m[2][1], m[2][2], m[2][3], m[2][4]
m[3][0], m[3][1], m[3][2], m[3][3], m[3][4]

mas por causa do teu for, tu faz:
m[1][1], m[1][2], m[1][3], m[1][4], m[1][5]
m[2][1], m[2][2], m[2][3], m[2][4], m[2][5]
m[3][1], m[3][2], m[3][3], m[3][4], m[3][5]
m[4][1], m[4][2], m[4][3], m[4][4], m[4][5]

Ou seja, NÃO FAZ a linha 0 (que existe) e faz a linha 4 QUE NÃO EXISTE.

MUITO CUIDADO!!!!


[2] Comentário enviado por matrix_jr em 03/11/2007 - 23:10h

Pô valeu, mais errei mesmo na manipulaçã do for, deveria ter começado por 0.
Valeu...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts