有哪位C语言高手能告诉我,为什么下面的主程序在执行的时候一直没有调用函数,总是直接跳过调用函数的语句0
saftc2013.07.04浏览98次分享举报
#include
#include
void main()
{ float flactional(float x[100][100],float y[100][100],float z[100][100],int m,int n);
int m=0,n=0, i=0,j=0,k=1,l=1;
float a[100][100],s[100][100],t[100][100];
printf("input m and n:\n");
scanf("%d,%d",&m,&n);
for(i=0;i
{for(j=0;j
{printf("a[%d][%d]=",i,j);
scanf("%f",&a[i][j]);
}
}
printf("\n原矩阵A=\n");
for(i=0;i
{for(j=0;j
{printf(" %10.6f ",a[i][j]);
}
printf("\n");
}
for(i=0;i
{for(j=0;j
{if(i==j) s[i][j]=1;
else s[i][j]=0;
}
}
for(i=0;i
{for(j=0;j
{if(i==j) t[i][j]=1;
else t[i][j]=0;
}
}
float flactional(float a[100][100], float s[100][100],float t[100][100],int m, int n);
printf("矩阵A的左逆矩阵S=\n");
for(i=0;i
{for(j=0;j
{printf(" %10.6f ",s[i][j]);
}printf("\n");
}
printf("矩阵A上的右逆矩阵T=\n");
for(i=0;i
{for(j=0;j
{printf(" %10.6f ",t[i][j]);
}printf("\n");
}
}
float flactional(float x[100][100],float y[100][100],float z[100][100],int m,int n)
{int i=0,j=0,k=1,l=1;
float x1[100][100];
float z1[100][100];
float r,r1,r2,r3,p,p1,p2,p3;
for(i=0;i
{if(x[i][i]==0)
{for(k=1;k<=m-i;k++)
if(fabs(x[i][i])
{for(j=0;j
{r=x[i][j];
x[i][j]=x[i+k][j];
x[i+k][j]=r;
}
for(j=0;j
{r1=y[i][j];
y[i][j]=y[i+k][j];
y[i+k][j]=r1;
}
break;
}
}
}
for(i=0;i
{if(x[i][i]!=0)
for(i=0;i
{r2=x[i][i];
for(j=0;j
x[i][j]/=r2;
for(j=0;j
y[i][j]/=r2;
for(k=1;k<=m-i;k++)
{ r3=x[i+k][i];
for(j=0;j
x[i+k][j]-=x[i][j]*r3;
for(j=0;j
y[i+k][j]-=y[i][j]*r3;
}
}
}
for(i=0;i
for(j=0;j
x1[j][i]=x[i][j];
for(i=0;i
for(j=0;j
z1[j][i]=z[i][j];
for(i=0;i
{if(x1[i][i]==0)
{for(k=1;k<=n-i;k++)
if(fabs(x1[i][i])
{for(j=0;j
{p=x1[i][j];
x1[i][j]=x1[i+k][j];
x1[i+k][j]=p;
}
for(j=0;j
{p1=z1[i][j];
z1[i][j]=z1[i+k][j];
z1[i+k][j]=p1;
}
break;
}
}
}
for(i=0;i
{if(x1[i][i]!=0)
for(i=0;i
{for(k=1;k<=n-i;k++)
if(x1[i+k][i]!=0)
{ p3=x1[i+k][i];
for(j=0;j
x1[i+k][j]-=x1[i][j]*p3;
for(j=0;j
z1[i+k][j]-=z1[i][j]*p3;
}
}
}
for(i=0;i
for(j=0;j
x[j][i]=x1[i][j];
for(i=0;i
for(j=0;j
z[j][i]=z1[i][j];
}