#include<iostream.h>
struct complex
{
float real,image;
}s1,s2;
void add(complex a,complex b){
complex c;
c.image=a.image+b.image;
c.real=a.real+b.real;
cout<<c.real<<" "<<c.image;
}
void minus(complex a,complex b){
complex c;
c.image=a.image-b.image;
c.real=a.real-b.real;
cout<<c.real<<" "<<c.image;
}
void times(complex a,complex b){
complex c;
c.real=a.real*b.real-a.image*b.image;
c.image=a.real*b.image+b.real*a.image;
cout<<c.real<<" "<<c.image;
}
void main()
{
complex s1,s2;
cout<<"please enter the 2 complex:"<<endl;
cin>>s1.real>>s1.image>>s2.real>>s2.image;
add(s1,s2);
minus(s1,s2);
times(s1,s2);
}
#include <iostream>
using namespace std;
我是这样 然后编译没错...
C嘎嘎啊,大学时候的东西了啊
用C的时候通常就是include中包含“.h” 用CPP的时候通常就不要加 这个是CPP吧 虽然没用到面向对象 但是用到了cin和cout 这种数据流的现实法是CPP有的 属于混搭 开头改为#include "iostream.h"和using namespace std;应该就没错了!
struct complex
{
float real,image;
}s1,s2; 你这里不是定义了两个complex类型的s1,s2了吗,你的main函数里怎么又定义一次啊?!
void main()
{
complex s1,s2;
}
这个complex s1,s2;重复定义了,去掉,直接使用全局的s1,s2
struct complex
{
float real,image;
}s1,s2;
放到main函数里来声明?!!!肯定错的嘛?你在main里声明的这个结构体complex是局部变量,只能在main函数里可见,出了main函数就不能用了,你那些main函数外面的add(),times()函数是全局函数,但是对complex不可见,用不了complex,所以当然会出错咯