超难c程序

来源:百度知道 编辑:UC知道 时间:2024/05/17 21:10:49
#define N 3
#include "math.h"
#include "stdio.h"
main()
{
int i,j,k;float a[N][N],b[N],g;
for(i=1;i<N;i++)
for(j=1;j<N;j++)
scanf("%f",a[i][j]);

for(i=1;i<N;i++)
scanf("%f",b[i]);

for(i=1;i<N-1;i++) {
if(a[i][i]!=0) for(j=i+1;j<N;j++)
{a[j][i]=a[j][i]/a[i][i];b[j]=b[j]-a[j][i]*b[j];
for(k=i+1;k<N;k++) a[j][k]=a[j][k]-a[i][k]*a[j][i];}
else break;}
if(i==N-1&&a[N-1][N-1]!=0) {b[N-1]=b[N-1]/a[N-1][N-1];
for(k=N-2;k>0;k--) {g=0;
for(j=k+1;j<N;j++) g=a[k][j]*b[j]+g;
b[k]=(b[k]-g)/a[k][k];

我运行了你的程序,用的是win-c编译的,得到的结果是
no answers
又修改了部分,经过调试,结果如下
1 2 3 4;5 6
0.000000 0.000000 0.000000 8791334912.000000 0.000000 0.000000 no answers
这个是我把你存入数组中的值全输出得到的结果!
证明你的输入有问题,就如同三楼的说的那样
是你的输入有问题,scanf的结果不正确,就算加上&字符,也不正确,因为没有连续两次用scanf这么用的!!
可以加我加入我的c语言群:22453400
有空了多交流交流

问题是什么啊!

你是不是想让我们帮你运行一下啊?
你连问题都不说!泡人玩呢?

算法没看,只看了一下语法scanf("%f",a[i][j]); scanf("%f",b[i]);
不对,a跟b前面要& 地址运算符,如&a[i][j],还有,数组下标是从0开始的,不是从1