求助!!!程序提示错误:有多个重载函数 "fabs" 实例与参数列表匹配

z1600682 2017-04-06 04:16:10

#include<stdio.h>
#include<math.h>
#include<conio.h>
#define NUM 20
#define Enter 13 /*换行符*/

void exchRow(int r,int k); /*矩阵行交换函数*/
float maxCoef(int k); /*求最大系数*/
void message(); /*用于显示提示信息的函数*/
float a[NUM][NUM+1]; /*用于存放方程系数矩阵及向量*/
int maxI,n;
main()
{
float x[NUM]; /*用于存放方程解*/
float s;
int k,i,j;
printf("\n用高斯列主元消元法解线性方程组");
printf("\n请输入方程组的维数:n=");
scanf("%d",&n);
printf("\n输入系数矩阵A和向量b:");
for(i=1;i<=n;i++)
{
printf("\n输入a[%d][1]-a[%d][%d]系数及向量b[%d]:",i,i,n,i); /*输入每一行的系数和向量*/
for(j=1;j<=n+1;j++) /*将输入的数据存入数组*/
scanf("%f",&a[i][j]);
}
for(k=1;k<=n;k++)
{
if(maxCoef(k)==0) /*判断方程是否为线性方程*/
{
printf("\n该方程非线性!");
message();
}
else if(maxI!=k)
exchRow(maxI,k);
for(i=k+1;i<=n;i++)
for(j=k+1;j<=n+1;j++)
a[i][j]=a[i][j]-a[k][j]*a[i][k]/a[k][k];
}
x[n]=a[n][n+1]/a[n][n];
for(k=n-1;k>=1;k--)
{
s=0;
for(j=k+1;j<=n;j++)
s=s+a[k][j]*x[j];
x[k]=(a[k][n+1]-s)/a[k][k];
}
printf("\n求得方程解为:");
for(i=1;i<=n;i++)
printf("\nx%d=%f",i,x[i]);
message();
}
void exchRow(int r,int k) /*矩阵行交换函数*/
{
int i;
for(i=1;i<=n;i++)
a[0][i]=a[r][i];
for(i=1;i<=n+1;i++)
a[r][i]=a[k][i];
for(i=1;i<=n+1;i++)
a[k][i]=a[0][i];
}
float maxCoef(int k) /*求最大系数*/
{
int i;
float t=0;
for(i=k;i<=n;i++)
if(fabs(a[i][k]>t))
{
t=(fabs(a[i][k]));
maxI=i;
}
return t;
}
void message() /*用于显示提示信息的函数*/
{
printf("\n\n继续运算请按Enter,退出请按其他任意键!\n");
if(getch()==Enter)
main();
}
运行后这么多错误,怎么解决,万分感谢!!
...全文
1647 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-04-07
  • 打赏
  • 举报
回复
偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。” 的方法解决的。
赵4老师 2017-04-07
  • 打赏
  • 举报
回复
关于自己是否适合编程的很简单的测试: 在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案: A里面有10处以上文字或标点错误 B里面没有文字或标点错误并敢为此跟人打赌 C里面没有文字或标点错误并且字体和排版完全与原稿一致 D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感 A不适合编程(理由:打字准确度偏低、粗心大意) B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念) C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证) D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!) 如果想从A变成B的话,到我的资源http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”
paschen 版主 2017-04-06
  • 打赏
  • 举报
回复 1
if(fabs(a[i][k]>t)) 改成: if(fabs(a[i][k])>t)

65,202

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧