哪位高手帮帮忙~~运行VC 有问题需要关闭
发布网友
发布时间:2024-10-23 16:54
我来回答
共2个回答
热心网友
时间:4分钟前
float a[3][3],x[3],b[3];
{for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
scanf("%f",&a[i][j]);
c语言数组是从0开始的,所以这里循环i,j应该是0到2,你越界啦
整个程序还有好多问题奥,不知道你这个程序是干嘛的,要实现什么功能
问题还有很多啦,光主函数里面就有以下
void main()
{
int i,j;
float a[3][3],x[3],b[3];
for(i=0;i<3;i++)
{///貌似你的括号应该这样括的
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
scanf("%f",&b[i]);
}
function(a,b);
for(i=0;i<3;i++)
printf("%f\n",x[i]);//每个输出里面只有一个参数,应该只有一个输出项%f吧?
}
而且你的x[]数组根本没有赋值,不知道你要输出什么
这个是我猜的,你看下能不能用
#include<stdio.h>
float a[3][3],x[3],b[3];
void function()
{
int i,j,k;
float m;
for(k=0;k<2;k++)
for(i=k+1;i<3;i++)
{
m=a[i][k]/a[k][k];
for(j=k;j<3;j++)
a[i][j]=a[i][j]-m*a[k][j];
b[i]=b[i]-m*b[j];
}
x[2]=b[2]/a[2][2];
for(i=1;i>=0;i--)
for(j=i+1;j<3;j++)
x[i]=(b[i]-a[i][j]*x[j])/a[i][i];
}
void main()
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
scanf("%f",&b[i]);
}
function(a,b);
for(i=0;i<3;i++)
printf("%f\n%f\n%f\n%f\n",x[i]);
}
热心网友
时间:2分钟前
#include<stdio.h>
void function(float a[3][3],float b[3])
{
int i,j,k;
float m;
float x[3];
for(k=0;k<3;k++)
{
for(i=k+1;i<3;i++)
{
m=a[i][k]/a[k][k];
for(j=k;j<3;j++)
a[i][j]=a[i][j]-m*a[k][j];
b[i]=b[i]-m*b[j];
}
}
x[3]=b[3]/a[3][3];
for(i=3;i>=0;i--)
for(j=i+1;j<3;j++)
x[i]=(b[i]-a[i][j]*x[j])/a[i][i];
}
void main()
{
int i,j;
float a[3][3],x[3],b[3];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
scanf("%f",&b[i]);
}
function(a,b);
for(i=0;i<3;i++)
printf("%f\n%f\n%f\n%f\n",x[i]);
}
你这个程序乱的很,不是指的是语法错误,而是思路乱
最终是调试通过了,结果得到的数据不对,你还是想下哪里没有考虑全面吧