#include<iostream>
using namespace std;
class Complex
{
private:
double real,imag;
public:
Complex(double _real=0.0,double _imag=0.0):real(_real),imag(_imag)
{
}
Complex operator +(Complex &val)
{
Complex t;
t.real=this->real+val.real;
t.imag=this->imag+val.imag;
return t;
}
/*不能引用局部變量Complex&operator+*/
Complex operator -(Complex &val)
{
return Complex(real-val.real,imag-val.imag);
}
Complex operator *(Complex &val)
{
Complex t;
t.real=this->real*val.real-this->imag*val.imag;
t.imag=this->real*val.imag+this->imag*val.real;
return t;
}
Complex operator *(double x)
{
return Complex(x*real,x*imag);
}
Complex operator ~()
{
return Complex(real,-1*imag);
}
friend istream &operator >>(istream &is,Complex &com)
{
cout<<"real:";
is>>com.real;
if (is)
{
cout<<"imag:";
is>>com.imag;
if (is)
return is;
else
com=Complex();
}
else
com=Complex();
return is;
}
friend ostream &operator <<(ostream &os,Complex &com)
{
os<<"("<<com.real<<","<<com.imag<<"i)"<<endl;
return os;
}
};
int main()
{
Complex a(3.0,4.0);
Complex c;
cout<<"輸入一個復數(輸入q就停止):\n";
while (cin>>c)
{
cout<<"c is "<<c<<endl;
cout<<"共轭復數:"<<~c<<endl;
cout<<"a is "<<a<<endl;
cout<<"a+c is "<<a+c<<endl;
cout<<"a-c is "<<a-c<<endl;
cout<<"a*c is "<<a*c<<endl;
cout<<"2*c is "<<2*c<<endl;
cout<<"輸入一個復數(輸入q就停止):\n";
}
cout<<"Done!\n";
return 0;
}
#include<stdio.h>
int main()
{
int i,j=0,f=0,k;
char s[100],a[100],e[100];
gets(s);
for (i=0;s[i]!='\0';i++)
{
if (s[i]>='0'&&s[i]<='9')
{
a[j++]=s[i];
if (s[i+1]>='0'&&s[i+1]<='9')
continue;
if (j>=f)
{
for (k=0,f=0;k<j;k++,f++)
e[k]=a[j];
}
j=0;
}
}
printf("%d\n",f);
for (k=0;k<f;k++)
printf("%c",e[k]);
printf("\n");
return 0;
}
LZ上面那段程序:cout<<"2*c is "<<2*c<<endl; 改為cout<<"2*c is "<<c*2<<endl;
2必須作為右操作數