C语言程序运行时停止工作 10

程序通过了编译(显示无错误)#include<stdio.h>voidmain(){inti,j,k;introw_max(floata[][5],intk);intco... 程序通过了编译(显示无错误)
#include<stdio.h>
void main()
{
int i,j,k;
int row_max(float a[][5],int k);
int column_max(float a[][5],int k);
float a[5][5];
float b[5];
int r[5];
int c[5];
printf("please enter a 5*5 matrix row by row:\n");
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%f",&a[i][j]);
}
printf("please enter a column vector:");
for(k=0;k<5;k++)
{
printf("b[%d]=",k);
scanf("%f",&b[k]);
}
for(k=0;k<4;k++)
{
float t;
r[k]=row_max(a,k);
c[k]=column_max(a,k);
for(i=0;i<5;i++);
{
t=a[i][k];
a[i][k]=a[i][c[k]];
a[i][c[k]]=t;
}
for(j=0;j<5;j++)
{
t=a[k][j];
a[k][j]=a[r[k]][j];
a[r[k]][j]=t;
} //完成第K个主元的选择

if(a[k][k]==0)
break;
else
{
for(i=k+1;i<5;i++)
a[i][k]=a[i][k]/a[k][k];
for(i=k+1;i<5;i++)
for(j=k+1;j<5;j++)
a[i][j]=a[i][j]-a[i][k]*a[j][k]; //完成第K步的高斯消元法
}
}
if(k==3) //如果上述步骤没有进行n-1次就说明循环中止了即矩阵奇异
{
float t;
for(i=3;i>=0;i--)
{
t=b[i];
b[i]=b[r[i]];
b[r[i]]=t;
} //行置换作用于b向量
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
b[j]=b[j]-b[i]*a[j][i]; //前代法解下三角形方程组
for(i=4;i>0;i--)
{
b[i]=b[i]/a[i][i];
for(j=0;j<i;j++)
b[j]=b[j]-b[i]*a[j][i];
}
b[0]=b[0]/a[0][0]; //回代法解上三角形方程组
for(i=3;i>=0;i--)
{
t=b[i];
b[i]=b[c[i]];
b[r[i]]=t;
} //行置换作用于b向量
for(i=1;i<=5;i++)
printf("x%d=%f\n",i,b[i-1]);
}
else
printf("the matrix is singular\nNO ANSWER!");
}
int row_max(float a[][5],int k)
{
int i,j;
float max;
int row_max;
max=a[k][k];
for(i=k;i<5;i++)
for(j=k;j<5;j++)
if(a[i][j]>max)
{
max=a[i][j];
row_max=i;
}
return(row_max);
}

int column_max(float a[][5],int k)
{
int i,j;
float max;
int column_max;
max=a[k][k];
for(i=k;i<5;i++)
for(j=k;j<5;j++)
if(a[i][j]>max)
{
max=a[i][j];
column_max=j;
}
return(column_max);
}
展开
 我来答
kkss_kkss2
2014-09-22 · TA获得超过129个赞
知道小有建树答主
回答量:83
采纳率:100%
帮助的人:46.1万
展开全部
没看到你错误的情况,代码太长,懒得看了。
c程序死掉报个红叉叉的错误,99%都是数组越界或者指针没有初始化的滥用,看你的题目估计也是数组越界造成的问题。
你可以用调试的方法进去,重现错误,回到vc的时候,会定位到错误的地方,自己再看看应该就可以了

扫了一遍,感觉你的r数组没有定义值就开始引用了。
for(j=0;j<5;j++)
{
t=a[k][j];
a[k][j]=a[r[k]][j];
a[r[k]][j]=t;
}
这句话开始使用r,但是前面没有看到哪里给r赋值
普杨8748
2014-09-20 · TA获得超过191个赞
知道答主
回答量:156
采纳率:100%
帮助的人:81.1万
展开全部
浮点型的应该用%f输入
scanf(“%f",iNumA);
输出地时候也是
printf("High=%f\n",High);
请采纳。
追问
我检查了没错啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式