我知道卡关的感觉不好受,不过我想你在迷宫已经头晕了吧...
你用太多money,有些是型态(struct),有些是未宣告的东西(因为未宣告所以不知怎么称呼)
你先将struct外加上范围子的宣告,会比较好厘清你的问题
复制程式
#include<iostream>
#include<iomanip>
using namespace std;
namespace my_struct
{
struct money
{
double US;
double NT;
};
}
double conversion1(my_struct::money &money);
double conversion2(my_struct::money &money);
int main()
{
int i,j;
double US=0,NT=0;
cout<<"请选择转换方式"<<endl<<endl;
cout<<"(1)台币 ---> 美金"<<endl;
cout<<"(2)美元 ---> 台币"<<endl;
cin>>j;
while((US >0 && NT >0) && j >0)
{
if(j==1)
{
cout<<"请输入台币金额: ";
cin>>NT;
cout<<"您输入的台币金额为: "<<NT;
conversion1(money);
cout<<"换算后的美元金额为: "<<US;
}else{
cout<<"请输入美元金额: ";
cin>>US;
cout<<"您输入的美元金额为: "<<US;
conversion2(money);
cout<<"换算后的美元金额为: "<<NT;
}
}
system("PAUSE");
return 0;
}
double conversion1(my_struct::money& money)
{
int rate = 35,US,NT;
US = NT * rate;
return US;
}
double conversion2(my_struct::money& money)
{
int rate = 35,NT,US;
NT = US / rate;
return NT;
}
结果编译出来会出现'money' : undeclared identifier
你需要用my_struct::money这个形态去产生一个实体money
然后将NT及US assign到那个实体,之后将实体传进你的函式
再用这个实体的NT及US做运算...
然后初步的程式就变成
复制程式
#include<iostream>
#include<iomanip>
using namespace std;
namespace my_struct
{
struct money
{
double US;
double NT;
};
}
double conversion1(my_struct::money &money);
double conversion2(my_struct::money &money);
int main()
{
int i,j;
double US=0,NT=0;
//用my_struct::money这个形态去产生一个实体money
my_struct::money money;
cout<<"请选择转换方式"<<endl<<endl;
cout<<"(1)台币 ---> 美金"<<endl;
cout<<"(2)美元 ---> 台币"<<endl;
cin>>j;
while((US >0 && NT >0) && j >0)
{
if(j==1)
{
cout<<"请输入台币金额: ";
cin>>NT;
//将NT及US assign到那个实体
money.NT = NT;
cout<<"您输入的台币金额为: "<<money.NT;
US = conversion1(money);
cout<<"换算后的美元金额为: "<<US;
}else{
cout<<"请输入美元金额: ";
cin>>US;
//将NT及US assign到那个实体
money.US = US;
cout<<"您输入的美元金额为: "<<money.US;
NT = conversion2(money);
cout<<"换算后的美元金额为: "<<NT;
}
}
system("PAUSE");
return 0;
}
double conversion1(my_struct::money& money)
{
int rate = 35,US,NT;
US = money.NT * rate;
return US;
}
double conversion2(my_struct::money& money)
{
int rate = 35,NT,US;
NT = money.US / rate;
return NT;
}
当然还没有结束,你的程式还是有些陷阱
在刚开始的时候,你MAIN()里头的US跟NT都宣告为0
所以While一直都进不去...
(时间紧迫时,还是要看清楚money的定义....)