Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/02/2010, 00:26
inmortal19
 
Fecha de Ingreso: julio-2009
Mensajes: 6
Antigüedad: 14 años, 11 meses
Puntos: 0
Nesecito ayuda con este programa

este programa lo hiso una amiga y me dice que el programa le corre normalmente pero cuando se le pide hacer algo se cierra la consola por asi decirlo: este es el codigo: "PERDON ESTE SI ES EL CODIGO EL OTRO ERA CUANDO NO ESTABA TERMINADO"


#include <stdio.h>
#include <stdlib.h>
void main() {
unsigned n,e,*x;
float *c,**a,*h,*v;
unsigned i,j,bi,bj;
printf ("Numero de variables:");
scanf ("%u",&n);
printf ("Numero de inecuaciones:");
scanf ("%u",&e);
c = (float*) calloc ( n+1, sizeof( float));
a = (float**) calloc ( e+1, sizeof( float*));
x = (unsigned*) calloc ( e+1, sizeof( unsigned));
h = (float*) calloc ( n+1, sizeof( float));
v = (float*) calloc ( e+1, sizeof( float));
for ( i=0;i<n;i++) {
printf ("Coeficiente x(%u) en la ecuacion del Maximo:",i+1);
scanf ("%f",&c[i]);
}
for ( j=0;j<e;j++) {
a[j] = (float*) calloc ( n+1, sizeof(float));
for ( i=0;i<n;i++) {
printf ("Coeficiente x(%u) en la %u ecuacion:",i+1,j+1);
scanf ("%f",&a[j][i]);
}
printf ("Termino Independiente de la %u ecuacion:",j+1);
scanf ("%f",&a[j][n]);
printf ("Subindice de la variable auxiliar de la inecuacion h(i)");
scanf ("%u",&x[j]); x[j]--;
}
for ( i=0; i<=n;i++ ){
a[e][i]=-c[i];
for ( j=0;j<e;j++){
a[e][i]+=a[j][i]*c[x[j]];
}
}
for (i=0; i< n; i++ ){
printf ("c(%u)= %7.2f\n", i+1,c[i]);
}
bi=1;
for ( i=0;i<n;i++){
if ( a[e][i]< a[e][bi] )
bi=i;
if ( a[e][bi]>=0 )
break; //PARECE QUE ESTE IF DEBIERA ESTAR DENTRO DEL FOR
}

bj=1;
for ( j=0;j<e;j++){
if ( a[j][n]*a[bj][bi] < a[bj][n]*a[j][bi] )
bj=j;
}
printf ("+");
for ( i=0;i<n+2;i++)
printf ("--------");
printf ("+\n");
for ( j=0; j< e; j++){
printf ("| x%u | %7.2f | ",x[j]+1,a[j][n] );
for ( i=0; i<n; i++ ){
if ((i==bi)&&(j==bj)) {
printf ("%7.2f*",a[j][i] );
} else {
printf ("%7.2f ",a[j][i] );
}
}
printf("|\n");
} printf ("+");
for ( i=0;i<n+2;i++)
printf ("--------");
printf ("+\n");
printf (" | %7.2f | ",a[e][n] );
for ( i=0; i<n; i++ ){
printf ("%7.2f ",a[e][i] );
}
printf("|\n\n");
for (i=0;i<=n;i++ ){
h[i]=a[bj][i];
}
for ( j=0;j<=e;j++ ){ v[j]=a[j][bi];
}
for (i=0;i<=n;i++ ){
for ( j=0;j<=e;j++ ){
a[j][i] -= h[i]*v[j]/h[bi];
}
}
for (i=0;i<=n;i++ ){
a[bj][i]=h[i]/v[bj];
}
x[bj]= bi;

printf(" + ");
for (i=0;i<n+2;i++){
printf ("--------"); }
printf ("+\n");
for ( j=0; j< e; j++){
printf ("| x%u | %7.2f | ",x[j]+1,a[j][n] );
for ( i=0; i<n; i++ ){
printf ("%7.2f ",a[j][i] );
}
printf("|\n");
}
printf ("+");
for ( i=0;i<n+2;i++)
printf ("--------");
printf ("+\n");
printf (" | %7.2f | ",a[e][n] );
for ( i=0; i<n; i++ ){
printf ("%7.2f ",a[e][i] );
}
printf("|\n\n");
printf ("\nSolucion:\n");
for ( j=0; j<e; j++){
printf ("x%u=%7.2f\n",x[j]+1,a[j][n]);
}
for ( j=0; j<=e; j++)
free(a[j]);
free(c);
free(a);
free(x);
free(h);
free(v);
}


yo creo que es un problema de logica ustedes que opinan o que se le podria hacer para que funcione ya no se que hacer yo no pude conseguir el problema

Última edición por inmortal19; 11/02/2010 a las 18:23