Problema al compilar

Iniciado por Eva93, 28 Agosto 2013, 19:24 PM

0 Miembros y 1 Visitante están viendo este tema.

Eva93

He estado trabajando en un programa que calcula el cubo de una matriz cúbica de dimension N. Pero al compilar no me sale la opción de dar la dimension y automaticamente siempre sale una matriz 3X3. aqui dejo el programa para ver el error, gracias de antemano ^.^

#include <stdio.h>
#include <stdlib.h>
#define DIM 100

void lee_Matriz (float A[DIM][DIM], int N);
void escribe_Matriz (float A[DIM][DIM], int N);
void producto_Matriz (float A[DIM][DIM], float B[DIM][DIM], float C[DIM][DIM], int N);

int main()
{
    float A[DIM][DIM], B[DIM][DIM], C[DIM][DIM];
    int N;

    printf("Dame la dimension de las matrices: ");
    scanf("%d", &N);
    printf("\nIntroduce la matriz: \n\n");
    lee_Matriz(A,N);
    system("pause");
    system("cls");
    printf("La primera fila es: \n\n");
    escribe_Matriz(A,N);
    printf("La segunda fila es: \n\n");
    escribe_Matriz(B,N);
    system("pause");
    system("cls");
    printf("El cubo de esa  fila es: \n\n");
    producto_Matriz(A,B,C,N);
    escribe_Matriz(C,N);

   return 0;
}

void lee_Matriz (float A[DIM][DIM], int N)
{
    int i, j;
    for(i=0;i<N;i++)
    for(j=0;j<N;j++)
    {
        printf("\nDame el elemento %d,%d de la matriz: ",i+1,j+1);
        scanf("%f",&A[j]);
    }
    return ;
}

void escribe_Matriz (float A[DIM][DIM], int N)
{
     int i, j;
     for(i=0;i<N;i++)
     {
         printf("(");
     for(j=0;j<N;j++)
     {
         printf(" %.2f ",A[j]);
     }
     printf(")\n");
     }
}

float producto_Matriz (float A[DIM][DIM], float B[DIM][DIM], float C[DIM][DIM], int N)
{
     int i,j,l;
     for(i=0;i<N;i++)
     {
        for(j=0;j<N;j++)
         {
             C[j]=0;
            for(l=0;l<N;l++)
            {
               C[j]+=A[l]*B[l][j];
            }
         }
     }
     return;
}

do-while

#1
¡Buenas!

Así, a botepronto, no veo nada raro. De todas formas edita el post y mete el codigo entre las etiquetas correspondientes GeSHi, el desplegable que tendrás arriba a la derecha en el modo de edición, al final de la primera fila de iconos.

¡Saludos!
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!

Eva93

#2
#include <stdio.h>
#include <stdlib.h>
#define DIM 100

void lee_Matriz (float A[DIM][DIM], int N);
void escribe_Matriz (float A[DIM][DIM], int N);
void producto_Matriz (float A[DIM][DIM], float B[DIM][DIM], float C[DIM][DIM], int N);

int main()
{
   float A[DIM][DIM], B[DIM][DIM], C[DIM][DIM];
   int N;

   printf("Dame la dimension de las matrices: ");
   scanf("%d", &N);
   printf("\nIntroduce la matriz: \n\n");
   lee_Matriz(A,N);
   system("pause");
   system("cls");
   printf("La primera fila es: \n\n");
   escribe_Matriz(A,N);
   printf("La segunda fila es: \n\n");
   escribe_Matriz(B,N);
   system("pause");
   system("cls");
   printf("El cubo de esa  fila es: \n\n");
   producto_Matriz(A,B,C,N);
   escribe_Matriz(C,N);

  return 0;
}

void lee_Matriz (float A[DIM][DIM], int N)
{
   int i, j;
   for(i=0;i<N;i++)
   for(j=0;j<N;j++)
   {
       printf("\nDame el elemento %d,%d de la matriz: ",i+1,j+1);
       scanf("%f",&A[j]);
   }
   return ;
}

void escribe_Matriz (float A[DIM][DIM], int N)
{
    int i, j;
    for(i=0;i<N;i++)
    {
        printf("(");
    for(j=0;j<N;j++)
    {
        printf(" %.2f ",A[j]);
    }
    printf(")\n");
    }
}

float producto_Matriz (float A[DIM][DIM], float B[DIM][DIM], float C[DIM][DIM], int N)
{
    int i,j,l;
    for(i=0;i<N;i++)
    {
       for(j=0;j<N;j++)
        {
            C[j]=0;
           for(l=0;l<N;l++)
           {
              C[j]+=A[l]*B[l][j];
           }
        }
    }
    return;
}


Sigo teniendo problemas para compilar el programa

do-while

#3
Te faltan todos los subindices i

Si pones los errores que te da el compilador mucho mejor. Ahí te estará diciendo que falla.

Otra cosa que acabo de ver. Te falta devolver el valor de la función que hace el  producto. O quitas el devuelves un float o la declara con tipo de retorno void. De hecho en el prototipo dices que el valor de retorno es void y cuando implementas la función lo has puesto float. Creo que eso es todo...

¡Saludos!
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!