C/Visual C - arreglo unidimensional

 
Vista:

arreglo unidimensional

Publicado por Antoine (4 intervenciones) el 14/11/2006 08:25:25
Aguien puede ayudarme con el siguiente problema; me piden introducir un valor del 1 al 20; en un arreglo bidimensional de 5 filas y 4 columnas, el numero que yo arroge digamos 3 debe de almacenarce en la casilla correpondiente; y los demas valores valdran 0; si arrojo el 15; si introdusco 8 y asi sucesivamente.

0 0 3 0
0 0 0 8
0 0 0 0
0 0 15 0
0 0 0 0

Los valores solo van a ser validos del 1 al 20; si yo pongo otro fuera de ese parametro me debe de rechazar el valor y pedieme otravez el valor. Tambien debe de pedirme si quiero introducir mas datos, y mostrarme la tabla; si yo indusco un valor ya repetido debe de marcarme que el dato ya existe, mostrarme el mensaje de introducir nuevamente y los valores repetidos mostrarmelos en un arreglo unidimensional

es bastante y no se que hacer ya me enrede en mi codigo.
puden ayudarme por favor

aqui les dejo mi avance de lo que apenas y pude hacer:
http://www.savefile.com/files/254727
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:arreglo unidimensional

Publicado por Fran (122 intervenciones) el 15/11/2006 03:39:59
OK, como son 5 filas y 4 columnas vas a tener un total de 20 casillas, fijate und ato, las matrices comienzan en 0
entonces hablando posicionalmente vas a tener algo asi:

00 01 02 03
04 05 06 07
08 09 10 11
12 13 14 15
16 17 18 19

pero en cuanto a valores es decir los valores de cada posicion vas a tener

01 02 03 04
05 06 07 08
09 10 11 12
13 14 15 16
17 18 19 20

es decir, en la pocision 06 vas a tener el valor 7

entonces si pones por ej el numero 7 o 15 tenes que ubicarlo en

int matriz[5][4]; //declaracion

matriz[1][2] = 7;
matriz[4][3] = 15;

es decir como en verdad empieza de 0 el indice, necesitas la sexta posicion
(6)%4 = 2 que esta en la segunda columna contando desde 0.
Para las filas, necesitas saber cuantas veces supero la barrera de las 4 columnas y por ello bajo a la fila de abajo, es decir 6/4 = 1.

por lo tanto matriz[1][2] es lo que sale, y es lo que estabamos buscando no?

el algoritmo en pseudocodigo mio seria algo asi

FILA = 5;
COLUMNA = 4;

fun putmatriz(matriz a[FILAS][COLUMNA],int num_a_poner)
int fila, columna;

columna:= (num_a_poner-1) % COLUMNA
fila:=(num_a_poner-1) / FILA

matriz[fila][columna] = num_a_poner

endfun

saludos! espero os sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar