永发信息网

数学编程题2

答案:1  悬赏:80  手机版
解决时间 2021-07-18 22:38
  • 提问者网友:动次大次蹦擦擦
  • 2021-07-18 00:54
#include <iostream.h>
#include <math.h>
//using namespace std;
float re( float a[][3],int n)
{
// a[][3]=new int a[10][3];
float b=0,float h=0;
for (int i=0;i<3;i++)
{
b+=a[n][i]*a[n][i];
}
h=sqrt(b);
return h;
};
void main()//rayleigh法
{
float a[3][3]={{2,4,6},{3,9,15},{4,16,36}};
float b[10][3]={0};
float y[10][3]={0},
float x[10][3]={0};
int i,j;
int c=0;float max=0; x[0][0]=12.0000;x[0][1]=27.0000;x[0][2]=56.0000;
for(c=0;c<10;c++)
{

for (i=0;i<3;i++)
{
y[c][i]=x[c][i]/re(x[][3],c);
}

for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
{
x[c+1][i]+=a[i][j]*y[c][j];

}
cout<<x[c][i]<<'\n';

for (j=0;j<3;j++)
{
b[c][j]+=y[c][j]*x[c+1][i];
}
cout<<b[c][j];
}

max=0;
}
}
为什么不行??请大虾帮忙
最佳答案
  • 五星知识达人网友:底特律间谍
  • 2021-07-18 01:48

一些语法问题 还有编程小毛病


改过的地方都给你注释了


如果我的回答你满意 请选为满意答案哦


#include <iostream.h>
#include <math.h>
//using namespace std;
double re( float a[][3],int n)
{
// a[][3]=new int a[10][3];
float b=0;
double h=0; //这两个值的定义要用分号隔开 h要和sqrt的返回值匹配 因此用 double
for (int i=0;i<3;i++)
{
b+=a[n][i]*a[n][i];
}
h=sqrt(b);
return h;
};
void main()//rayleigh法
{
float a[3][3]={{2,4,6},{3,9,15},{4,16,36}};
float b[10][3]={0};
float y[10][3]={0}; //这里你用的逗号
float x[10][3]={0};
int i,j;
int c=0;float max=0; x[0][0]=12.0000;x[0][1]=27.0000;x[0][2]=56.0000;
for(c=0;c<10;c++)
{


for (i=0;i<3;i++)
{
y[c][i]=x[c][i]/re(x,c); //这里第一个参数传入一个数组指针就可以了
}


for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
{
x[c+1][i]+=a[i][j]*y[c][j];


}
cout<<x[c][i]<<'\n';


for (j=0;j<3;j++)
{
b[c][j]+=y[c][j]*x[c+1][i];
}
cout<<b[c][j];
}


max=0;
}
}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯