/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

alguien es capaz de decirme porque me da error al ejecutar?

 
      Índice del Foro elrincondelc.com -> Trabajos de clase
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
trocoloco



Registrado: 28 Nov 2007
Mensajes: 2

MensajePublicado: 28/11/2007 9:41 am
Título: alguien es capaz de decirme porque me da error al ejecutar?

Por favor que alguien me ayude a decirme donde esta el error en
este programa ,el codigo tiene un par de cosas sin acabar pero por lo que falla en sí mismo no lo encuentro llevo ya aquí un buen rato y no doy con la tecla

un saludo.


Código:
/*Escribir una funcion que nos indique si en una matriz MxM la suma de cada fila,
columna y la diagonal suman lo mismo*/

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


#define N 4//fila
#define M 4//columna

void sumasEnMatriz (int matriz [N][M]);

main()
{
int matriz[N][M]={{3,5,5,5},{5,3,5,5},{5,5,4,5},{5,5,5,2}};
sumasEnMatriz(matriz);
system ("pause");
}

/*con 3 variables y pasando 1 vezs por la matriz devolverá si la suma de filas,columnas y su diagonal tienen el mismo valor*/
void sumasEnMatriz (int matriz [N][M])
{
int i,j,cierto=1,valor=0;//condicionamos que cierto=1 en la que se da por cumplida
int filas=0,columna=0,diagonal=0;//sumas que buscamos comparar
for (i=0;i<N;i++)//primero suma por columnas
{
  columna=columna+matriz[i][j];
  valor=columna;
  for (j=0;j<M;j++)
  {
   filas=filas+matriz[i][j];
   if (i==j)//suma de diagonal si se cumple que los contadores coinciden
    {
     diagonal=diagonal+matriz[i][j];
    }
   printf ("%.d%c ", matriz[i][j],9);
  }
  printf ("%c",10);
 
  if (valor!=filas)
  /*aqui si el valor de una columna es distinto del de la fila se rompe la condicion*/
  {
   cierto=0;
  }
}                     
if (valor!=diagonal)
{
 cierto=0;
}
if (cierto==1)//simple muestra por pantalla del resultado

 printf ("\nLa suma de filas, columnas y tienen el mismo resultado\n");

else
  printf ("\nLa suma de filas, columnas y tienen el mismo resultado\n");

Volver arriba
digies



Registrado: 18 Nov 2005
Mensajes: 353
Ubicación: Cono Sur

MensajePublicado: 28/11/2007 12:57 pm
Título:

El error más importante que tienes es que el programa principal (main) debe retornar un valor (entero), por eso cambia "main(){...}" por "int main(void) {...}. También es conveniente que coloques la función que retorna ese valor: "return 0;" o mejor aun "return EXIT_SUCCESS;".

En la primera asignación que le haces a la variable "columna" dentro del procedimiento, el índice "j" de la matriz no está inicializada a ningún valor; tienes que asignarle uno.
Código:

...
columna=columna+matriz[i][j];
...


Un saludo
Volver arriba
trocoloco



Registrado: 28 Nov 2007
Mensajes: 2

MensajePublicado: 29/11/2007 10:53 am
Título:

gracias digies!! seguiré tu consejo Very Happy
Volver arriba
Solenbum



Registrado: 29 Nov 2007
Mensajes: 4

MensajePublicado: 30/11/2007 2:28 am
Título:

alfinal, se arregló?
_________________
peepaaa
Volver arriba
      Índice del Foro elrincondelc.com -> Trabajos de clase
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com