求c语言大佬指点
//列主元Gauss消去法
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<math.h>
main()
{
int i;
float *x;
float c[4][5]={1.1164,0.1254,0.1397,0.1490,1.5471,0.1582,1.1675,0.1768,0.1871,1.6471,0.1968,0.2071,1.2168,0.2271,1.7471,0.2368,0.2471,0.2568,1.2671,1.8471};
float *ColPivot(float *,int);
x= ColPivot(c[0],3);
clrscr();//clear screen
for(i=0;i<=2;i++) printf("x[%d]=%f ",i,x[i]);
getch();
}
float *ColPivot(float *c,int n)
{
int i,j,t,k;
float *x,p;
x=(float *)malloc(n*sizeof(float));//分配内存
for(i=0;i<=n-2;i++)
{
k=i;
for(j=i+1;j<=n-1;j++)
if(fabs(*(c+j*(n+1)+i))>(fabs(*(c+k*(n+1)+i)))) k=j;
if(k!=i)
for(j=i;j<=n;j++)
{
p=*(c+i*(n+1)+j);
*(c+i*(n+1)+j)=*(c+k*(n+1)+j);
*(c+k*(n+1)+j)=p;
}
for(j=i+1;j<=n-1;j++)
{
p=(*(c+j*(n+1)+i))/(*(c+i*(n+1)+i));
for(t=i;t<=n;t++)
*(c+j*(n+1)+t)-=p*(*(c+i*(n+1)+t));
}
}
for(i=n-1;i>=0;i--)
{
for(j=n-1;j>=i+1;j--)
*(c+i*(n+1)+n)-=x[j]*(*(c+i*(n+1)+j));
x[i]=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i));
}
return x;
}
报错提示主函数有问题,可是我是照着书上打的,对了一下,没毛病啊
你的 clrscr();//clear screen
不是标准的C/C++函数,大多编译器都不认的(你的教材肯定有点老了)
改为
system("cls"); //windows
或
system("clear"); //linux
这个要加
#include <stdlib.h>
另外,你的main()非标准的写法,标准的
int main()
你的系统有没有开兼容模式
没有什么问题啊
这个看看你的系统是不兼容吧
对了一下,没毛病啊
这个是对的是啊