| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 649 人关注过本帖
标题:求助: 我的解方程程序为什么不能用呢?
只看楼主 加入收藏
bcomer
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2004-9-13
收藏
 问题点数:0 回复次数:3 
求助: 我的解方程程序为什么不能用呢?
#include <stdio.h>
#include <math.h>
int choose_max(double** matrix, int line_start, int line_end);
double substitute_line(double** matrix, int line_a, int line_b);
double** eliminate_line(double** matrix, int line_a);
double* huidai(double** matrix);
void print_result(double* result);
void print_matrix(double** matrix);
void solve_expression(double** matrix);
void main()
{
getch();
}
int choose_max(double** matrix, int line_start, int line_end)
{
int nol;
int i;
double mol;
nol=line_start;
mol=abs(*(*(matrix+line_start)+line_start));
for(i=line_start;i<=line_end;i++)
{
if(abs(*(*(matrix+i)+line_start))>mol)
{
nol=i;
mol=abs(*(*(matrix+i)+line_start));
}
}
return(nol);
}
double** substitte_line(double** matrix, int line_a, int line_b)
{
int i;
for(i=0;i<4;i++)
*(*(matrix+3)+i)=(*(*(matrix+line_a)+i));
for(i=0;i<4;i++)
*(*(matrix+line_a)+i)=(*(*(matrix+line_b)+i));
for(i=0;i<4;i++)
*(*(matrix+line_b)+i)=(*(*(matrix+3)+i));
return(matrix);
}
double** eliminate_line(double** matrix, int line_a)
{
double isn;
int i,j;
isn=(*(*(matrix+line_a)+line_a));
for(i=line_a+1;i<3;i++)
{
for(j=line_a+1;j<4;j++)
{
*(*(matrix+i)+j)=(*(*(matrix+i)+j))-(*(*(matrix+line_a)+j))*(*(*(matrix+i)+line_a))/isn;
}
}
return(matrix);
}
double* huidai(double** matrix)
{
double* result;
*(result+2)=(*(*(matrix+2)+3))/(*(*(matrix+2)+2));
*(result+1)=(*(*(matrix+1)+3)-(*(result+2))*(*(*(matrix+1)+2)))/(*(*(matrix+1)+1));
*(result+0)=(*(*(matrix+0)+3)-(*(result+2))*(*(*(matrix+0)+2))-(*(result+1))*(*(*(matrix+0)+1)))/(*(*(matrix+0)+0));
return(result);
}
void print_result(double* result)
{
int i;
for(i=0;i<3;i++)
printf("%lf\t",*(result+i));
}
void print_matrix(double** matrix)
{
int i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
printf("lf\t",*(*(matrix+i)+j));
if(j==3)
printf("\n");
}
}
void solve_expression(double** matrix)
{
int i,k;
double* result;
for(i=0;i<3;i++)
{
k=choose_max(matrix,i,2);
matrix=substitte_line(matrix,i,k);
matrix=eliminate_line(matrix,i);
}
result=huidai(matrix);
print_result(result);
}
搜索更多相关主题的帖子: 解方程 
2006-03-13 09:13
haishanglang
Rank: 1
等 级:新手上路
帖 子:378
专家分:0
注 册:2006-3-2
收藏
得分:0 
这么多程序,头好晕,好头晕

2006-03-14 22:38
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
下次把注释写上,主要写清楚你这程序解决什么样的方程

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-14 22:46
yqz_b
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-3-1
收藏
得分:0 
哈哈,有意思。没有注释,也不说你的程序是干嘛的,更不说是错在哪里。你让我们怎么帮你啊。这种3无"产品",我们不敢用。
2006-03-19 11:15
快速回复:求助: 我的解方程程序为什么不能用呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011154 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved