高分求助:C++问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 11:21:33
#include<iostream.h>
#include<cmath>
#include <stdlib.h >
void main()
{
int n;
float x,y,z;
float a[3][3],b[]={x,y,z};
float eb=1,si=1,ng=1,eb2=1,de,df;
cout<<"enter:";
cin>>x>>y>>z;
cin>>de>>df;
for(n=0;n<6;n++)
{
switch(n)
{
case 0: {a[3][3]={{cos(eb),-sin(eb),0},{sin(eb),cos(eb),0},{0,0,1}};}
break;
case 1: {a[3][3]={{cos(si),0,sin(si)},{0,1,0},{sin(si),0,cos(si)}};}
break;
case 2:{a[3][3]={{cos(ng),-sin(ng),0},{sin(ng),cos(ng),0},{0,0,1}};}
break;
case 3:{a[3][3]={{1,0,0},{0,cos(eb2),sin(eb2)},{0,-sin(eb2),cos(eb2)}};}
break;
case 4:{a[3][3]={{cos(df),-sin(df),0},{sin(df),cos(df),0},{0,0,1}};}
break;
case 5:{a[3][3]={{1,0,0},{0,cos(eb2+de),-sin(eb2+de)},{0,sin(eb2+de),cos(eb2+de)}};}
break;
default:cout<<&q

在你的switch语句中,数组a的赋值语句为什么要用a[3][3]呢?这样不行

改成a={{cos(eb),-sin(eb),0},{sin(eb),cos(eb),0},{0,0,1}};
a={cos(si),0,sin(si)},{0,1,0},{sin(si),0,cos(si)}};
...
其他的没有问题

不能用:
a[3][3]={{cos(eb),-sin(eb),0},{sin(eb),cos(eb),0},{0,0,1}};
因为:a[3][3],1是错误的地址(最大只能a[2][2]),2不能将一个数组数据给一个数组元素。
也不能如上所说用:
a={{cos(eb),-sin(eb),0},{sin(eb),cos(eb),0},{0,0,1}};
因为:a是一个确定了地址的数组,再强行赋另外一个数组对象,编译器是不答应的。
定长数组初始化了的话,编译器不允许你去修改它的地址的。

这个赋值你必须用 a[0][0]=...;a[0][1]=...;a[0][2]=...;来赋值

赋值部分有错。
建议用笨方法吧。呵呵。

#include<iostream>
#include <stdlib.h>
#include<cmath>

using namespace std;

void main()
{
int n;
float a[3][3],b[3];
float eb=1,si=1,ng=1,eb2=1,de,df;
cout<<"enter:";
cin>>b[0]>>b[1]>>b[2];
cin>>de>>df;
for(n=0;n<6;n++)
{
switch(n)
{
case 0: //{a[3][3]={{,-sin(eb),0},{sin