Foros del Web » Programación para mayores de 30 ;) » Programación General »

Lenguaje C , pregunta.-

Estas en el tema de Lenguaje C , pregunta.- en el foro de Programación General en Foros del Web. Hola, necesito hacer lo siguiente: Que el usuario ingrese las filas y las columas de una matriz , Tiene que se cuadrada ( filas = ...
  #1 (permalink)  
Antiguo 06/08/2003, 10:58
 
Fecha de Ingreso: abril-2003
Mensajes: 79
Antigüedad: 21 años
Puntos: 0
Lenguaje C , pregunta.-

Hola, necesito hacer lo siguiente:

Que el usuario ingrese las filas y las columas de una matriz , Tiene que se cuadrada ( filas = columnas) , mi problema esta en que para pedirle los datos debe salir como MATRIZ.

Ejemplo:

Filas: 2
Columnas: 2

2 6
3 4

Como lo hago para que me pida los datos de esa forma ?

grgacias.
__________________
*Tratando de Aprender de los errores.....
  #2 (permalink)  
Antiguo 06/08/2003, 11:34
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
No entiendo muy bien lo que quieres hacer, pero para eso yo solo pediria un dato en lugar de 2, y para llenarla uso las posiciones:

Código:
printf("tamaño? -->"); scanf("%d",&tamano);
for(int i=0; i<tamano; i++){
    for(int j=0; j<tamano; j++){
        printf("Valor para la celda en la columna: %d y renglon: %d -->", i+1, j+1);
        scanf("%d", matriz[i][j]);
    }
}
Espero que eso te sirva, si no aqui estamos.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 06/08/2003, 12:05
 
Fecha de Ingreso: abril-2003
Mensajes: 79
Antigüedad: 21 años
Puntos: 0
Eso esta bien, ,el problema es que no debe preguntar valor fila 1 columna1 , sino que debe ponerse en la posicion del valor.

y ahi ingresar el valor....

que alfinal cuando yo ingrese la matriz quede una matriz en pantalla ...

ingrese datos :

2 3 1
5 4 5

se comprende ?
__________________
*Tratando de Aprender de los errores.....
  #4 (permalink)  
Antiguo 06/08/2003, 12:08
 
Fecha de Ingreso: abril-2003
Mensajes: 79
Antigüedad: 21 años
Puntos: 0
aqui esta la tarea ahi dice lo que hay que hacer para que entiendan....

http://ar.f1.pg.photos.yahoo.com/bc/...o.com/&.view=t
__________________
*Tratando de Aprender de los errores.....
  #5 (permalink)  
Antiguo 06/08/2003, 12:56
 
Fecha de Ingreso: abril-2003
Mensajes: 79
Antigüedad: 21 años
Puntos: 0
#include <stdio.h>
#include <stdlib.h>
#include <process.h>
#include <conio.h>

void lectura(int f , int c, float*p)
{
clrscr ();
float num=0;
int i,j=0;
for(i=0;i<f;i++)
{
for(j=0;j<c;j++)
{
gotoxy (i+1,j+1);
scanf("%f",&num);
*p=num;
if((i!=f) && (j!=c))
{
p++;
}
}
}

}
void ver(int f,int c,float *p)
{
int i=0;
int j=0;
for (i=0;i<f;i++)
{
for(j=0;j<c;j++)
{
printf("\t%5.2f",*p);
if((i!=f) && (j!=c))
{
p++;
}
}
printf("\n");
}
}
void lectura(int f,int c,float *p);
void ver(int f,int c,float *p);

int main (void)
{
float *p1, *p2,*p3;
int i,j,k,f1,c1,f2,c2=0;
float acumu=0;

printf("Ingrese los datos que se piden, LA MATRIZ DEBE SER DE nxn\n");

printf("\n Numero de Filas: ");
scanf("%i",&f1);
printf("\n Numero de Columnas: ");
scanf("%i",&c1);

if(c1!=f1)
{
printf("\nLa matriz ingresada no es cuadrada");
printf("\nEL Adios\n");
exit(1);
}
printf("\nIntroduce los valores de la primera matriz:\n");
printf("****************************************** *\n");
lectura(f1,c1,p1);
printf("\nLa primera matriz es: \n\n");
ver(f1,c1,p1);
gotoxy(10,9+c1);
return 0;
clrscr();
}

Prueben ese codigo , ahora mi problema es que la matriz que ingreso queda al revez de la que muestro...

como lo arreglo ???
__________________
*Tratando de Aprender de los errores.....
  #6 (permalink)  
Antiguo 06/08/2003, 13:53
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
A primera vista lo que te puedo decir es que veo que no declaras una matriz, sino que usas el apuntador (p) y lo incrementas para almacenar el siguiente valor.

Hasta donde se no deberias hacer eso, puesto que no estas reservando memoria para almacenar el numero y te estas comiendo sectores de la memoria que no deberias, eso te acarrea problemas dificiles de detectar.

Para desplegar los datos veo que usas gotoxy(i+1,j+1) pero como usas valores flotantes ocasiona que se te sobreescriban, creo que sera mejor si usas algo como gotoxy(i*3+1, j*3+1) y eso te daria 3 espacios para poner tu munero.

PD. Si metes el codigo dentro de etiquetas CODE y /CODE lo puedes indentar y es mas facil de leer
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:49.