Autor
|
Tema: matrices en c (Leído 5,171 veces)
|
ALONSOQ
Desconectado
Mensajes: 62
|
Buenos días
Por favor que me falla en el siguiente código? ¿ por que me escribe por pantalla los números que quiere?
muchísimas gracias
#include<stdio.h> #include<conio.h>
main() { int matriz[5]; int valor=10; int i; for(i=0;i<=5;i++) { matriz= valor; } printf(" %d", &matriz); getch(); }
|
|
|
En línea
|
|
|
|
maxim_o
Desconectado
Mensajes: 186
|
EN primer lugar en este caso se llama array, cuando tu lo declaras de N elementos (en este caso 5) , va desde la posicion 0 hasta N-1 (en este caso 4), es decir hay 5 posiciones, 0,1,2,3,4. Por lo que el for debe recorrer desde i=0 hasta i<5. En segundo lugar, cada valor tienes que añadirselo a una posicion. matriz[0]=1; matriz[1]=10; etc #include<stdio.h> #include<conio.h> main() { int matriz[5]; int valor=10; int i; for(i=0;i<5;i++) { matriz[i]= valor; printf("%d ", matriz[i]); } getch(); }
|
|
« Última modificación: 18 Junio 2012, 14:22 pm por maxim_o »
|
En línea
|
|
|
|
ALONSOQ
Desconectado
Mensajes: 62
|
perdona pero no te sigo; añado el código con algunas modificaciones
#include<stdio.h> #include<conio.h>
main() { int matriz[5]; int valor=10; int i; for(i=0;i<5;i++) { matriz= valor; } printf("%d",&matriz); getch(); }
Me siguen saliendo valores sin sentido, cuando tendría que imprimir 10 10 10 10 10
seguro que es muy facil, per yo llevo muy poco tiempo usando este lenguaje y me cuasta bastante ver el error
muchas gracias
|
|
|
En línea
|
|
|
|
Maik33
Desconectado
Mensajes: 128
|
cuando haces matriz = valor, estas asignando un valor entero a un puntero. La matriz tiene diferentes celdas de memoria, para acceder al primer "hueco" tienes que poner matriz[0]=valor, asi asignas el valor de "valor" a la primera posicion del vector: Esto es lo que tienes: matriz: ___________________________________________________________________ |___matriz[0]__|__matriz[1]___|___matriz[2]___|___matriz[3]__|__matriz[4]___|
cada rectangulo es una direccion de memoria y puedes asignar valor a cada posicion, pero no puedes hacer matriz=valor.
No se si me explico.
Luego para mostrar por pantalla los valores tendrias que ir con un for imprimiendo cada uno.
|
|
|
En línea
|
|
|
|
maxim_o
Desconectado
Mensajes: 186
|
Buenas revisa el codigo que te puse , que ahora lo he puesto con las etiquetas y sale bien... TU fallo es tanto para añadir el valor a la posicion del array, como para imprimirlo tienes que ir posicion a posicion matriz[i]= valor; printf("%d" , matriz[i]);
|
|
« Última modificación: 18 Junio 2012, 16:23 pm por maxim_o »
|
En línea
|
|
|
|
ALONSOQ
Desconectado
Mensajes: 62
|
Muchísimas gracias a ambos, lo he entendido perfectamente
un saludo
|
|
|
En línea
|
|
|
|
twins
Desconectado
Mensajes: 54
|
Hola amigo lo que pasa es que lo que tienes hay no es una matriz es un vector una matriz tiene dos coordenadas (matriz[j]) y para imprimir y llenar la matriz necesitas un for anidado es decir dos for a continuacion te dejo el codigo cualquir duda me preguntas yo se bastante de c a proposito tambien estoy pidiendo ayuda con listas enlazadas jaja. bueno aqui te dejo el codigo.
#include<stdio.h> int main(void){ int i,j,matriz[3][3]; for(i=0;i<3;i++) for(j=0;j<3;j++) matriz[j]=10;//llena la matriz con 10 for(i=0;i<3;i++){//imprime la matriz printf("\n"); for(j=0;j<3;j++) printf("[%i]",matriz[j]); } getchar(); return(0);//el compilador le dice al sistema operativo que se acabo la ejecucion del programa. }
|
|
|
En línea
|
|
|
|
noele1995
Desconectado
Mensajes: 137
|
Hola twins, en efecto eso es lo que es una matriz pero en el ejemplo que has dado la estas usando mal, ya que las estas declarando con 2 DIMENSIONES y solo estas pasandole el puntero al que tiene que ire de una de las dimensiones tanto en el momento de llenarla como en el de imprimirla. Dejo tu codigo modificado en c++. #include<iostream> int main(void){ int i,j, matriz[3][3]; using std::cout; using std::cin; for(i=0;i<3;i++) for(j=0;j<3;j++) matriz[i][j]=10;//llena la matriz con 10 for(i=0;i<3;i++){//imprime la matriz for(j=0;j<3;j++) cout << "Imprimiendo la matriz[" << i << "][" << j << "] ------> " << matriz[i][j] << "\n"; } getchar(); return(0);//el compilador le dice al sistema operativo que se acabo la ejecucion del programa. }
Saludos, Noele1995
|
|
|
En línea
|
|
|
|
twins
Desconectado
Mensajes: 54
|
A! pues eso debe ser en c++ porque en c no habria problemas y este ejemplo no use punteros esta normal, saludos.
|
|
|
En línea
|
|
|
|
twins
Desconectado
Mensajes: 54
|
aaaa!!! jajaja se me quedo afuera la posicion de la jaja q cosas no!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
matrices en C#
Programación General
|
volterra
|
4
|
10,540
|
18 Mayo 2010, 06:26 am
por Og.
|
|
|
matrices
Programación C/C++
|
aral90
|
2
|
2,503
|
9 Diciembre 2011, 20:13 pm
por aral90
|
|
|
matrices
.NET (C#, VB.NET, ASP)
|
legomanticore
|
4
|
3,826
|
14 Mayo 2012, 03:02 am
por $Edu$
|
|
|
Matrices en C/C++ Urgente!!!
« 1 2 »
Programación C/C++
|
jfap45
|
10
|
6,304
|
18 Julio 2012, 20:01 pm
por jfap45
|
|
|
matrices
Programación C/C++
|
lorderick
|
3
|
3,370
|
8 Septiembre 2012, 05:12 am
por CSQCasimiro
|
|