using namespace std;
class complex
{
float real,image;//默认的私有成员
public:
void setdata(float r=0,float i=0) //成员函数也可以带有默认的参数值
{
real = r;
image = i;
}
complex add(complex c);//成员函数也可以的重载
complex add(float c);
void input();ed
void print();
};
complex complex ::add(complex c)
{
complex t;
t.real = real + c.real,t.image = image + c.image;
return t;
}
complex complex::add(float f)
{
complex t;
t.real = real + f,t.image = image;
return t;
}
void complex::input(){
cin >> real >> image;
}
void complex::print()
{
if(image < 0) cout << real << image <<"i" << endl;
else if(image > 0) cout << real << "+" << image << "i" << endl;
else cout << real <<endl;
}
// 在类体定义的函数默认为内联的,而在类体外定义的话,则需要用inline进行声明int main(){
complex c1,c2,c3;
c1.input();c2.input();//调用函数输出
c3 = c1.add(c2);//调用add函数
c3.print();//输出
return 0;
}
//#include <iostream>
using namespace std;
class date{
int year,month,day;
public:
void setdate(int,int,int);//设置日期
bool isleapyear();//判断是否是闰年
void output();//输出函数
};
void date :: setdate(int y,int m,int d){//用该函数访问类对象的值
year = y;
month = m;
day = d;
}
bool date :: isleapyear(){
return ((year%4==0 && year%100 != 0)||(year%400 == 0));
}
void date :: output(){
cout << year << "," << month << "," << day << endl;
}
int main()
{
date day1,day2,day3;
day1.setdate(2018,05,24);//定义date类的三个对象
day2.setdate(1998,12,25);//设置day1的数据成的数值
day3.setdate(1998,11,26);
cout << day1.isleapyear() << "," << day2.isleapyear() << "," << day3.isleapyear() << endl;
date * p1 = &day1,*p2=&day2,&r=day3;//定义date 类的两个指针和一个引用
// 对象成员名 -> 数据成员/函数成员名
p1 ->output();
//(*对象指针名 ). 数据成员,函数成员名
(*p2).output();
//对象名.数据成员
r.output();
return 0;
}
//#include <iostream>
using namespace std;
class date{
int year,month,day;
public:
void setdate(int,int,int);//设置日期
bool isleapyear();//判断是否是闰年
void output();//输出函数
};
void date :: setdate(int y,int m,int d){//用该函数访问类对象的值
year = y;
month = m;
day = d;
}
bool date :: isleapyear(){
return ((year%4==0 && year%100 != 0)||(year%400 == 0));
}
void date :: output(){
cout << year << "," << month << "," << day << endl;
}
int main()
{
date day1,day2,day3;
day1.setdate(2018,05,24);//定义date类的三个对象
day2.setdate(1998,12,25);//设置day1的数据成的数值
day3.setdate(1998,11,26);
cout << day1.isleapyear() << "," << day2.isleapyear() << "," << day3.isleapyear() << endl;
date * p1 = &day1,*p2=&day2,&r=day3;//定义date 类的两个指针和一个引用
// 对象成员名 -> 数据成员/函数成员名
p1 ->output();
//(*对象指针名 ). 数据成员,函数成员名
(*p2).output();
//对象名.数据成员
r.output();
return 0;
}
//#include <iostream>
using namespace std;
class date{
int year,month,day;
public:
void setdate(int,int,int);//设置日期
bool isleapyear();//判断是否是闰年
void output();//输出函数
};
void date :: setdate(int y,int m,int d){//用该函数访问类对象的值
year = y;
month = m;
day = d;
}
bool date :: isleapyear(){
return ((year%4==0 && year%100 != 0)||(year%400 == 0));
}
void date :: output(){
cout << year << "," << month << "," << day << endl;
}
int main()
{
date day1,day2,day3;
day1.setdate(2018,05,24);//定义date类的三个对象
day2.setdate(1998,12,25);//设置day1的数据成的数值
day3.setdate(1998,11,26);
cout << day1.isleapyear() << "," << day2.isleapyear() << "," << day3.isleapyear() << endl;
date * p1 = &day1,*p2=&day2,&r=day3;//定义date 类的两个指针和一个引用
// 对象成员名 -> 数据成员/函数成员名
p1 ->output();
//(*对象指针名 ). 数据成员,函数成员名
(*p2).output();
//对象名.数据成员
r.output();
return 0;
}
//#include<iostream>
#include <stack>
using namespace std;
#define NUM 4
#define NIL -1
int GetPositionFromLaday(int ladayArray[][NUM], int laday, int man)
{
for(int i=0; i<NUM; i++)
if(ladayArray[laday][i] == man)
return i;
return NIL;
}
void ChoosePartener(stack<int>& manStack, int manPos, int manArray[][NUM], int ladayArray[][NUM], int manPerfer[], int manStartPos[], int ladayNow[])
{
//选择自己名单上排在首位的女人
int perferLaday = manArray[manPos][manStartPos[manPos]];
//如果该女孩没有接受过表白,则接受该男孩的表白
if(ladayNow[perferLaday] == NIL)
{
ladayNow[perferLaday] = manPos;
manPerfer[manPos] = perferLaday;
}
//如果已经有人向她表白,则判断其现在拥有的有没有现在追求的好
else
{
int oldPos = GetPositionFromLaday(ladayArray, perferLaday, ladayNow[perferLaday]);
int newPos = GetPositionFromLaday(ladayArray, perferLaday, manPos);
if(oldPos < newPos)
{
manStartPos[manPos]++;//说明该女生更喜欢现在拥有的,选心目中第二位
//加入单身行列
manStack.push(manPos);
}
else //换男友
{
//被甩的男友恢复自由身份
manStartPos[ladayNow[perferLaday]]++;
//加入单身行列
manStack.push(ladayNow[perferLaday]);
//将追求的男士改为现任男友
ladayNow[perferLaday] = manPos;
manPerfer[manPos] = perferLaday;
}
}
}
int main()
{
int manArray[NUM][NUM] ={{2,3,1,0},{2,1,3,0},{0,2,3,1},{1,3,2,0}};
int ladayArray[NUM][NUM] = {{0,3,2,1},{0,1,2,3},{0,2,3,1},{1,0,3,2}};
int manPerfer[NUM] = {0};//每位男生选中的女生
int manStartPos[NUM] = {0};//记录每位男生选取的是心目中第几位的女生
int ladayNow[NUM] = {NIL,NIL,NIL,NIL};//女生对应的男生
stack<int> manStack; // 还处于单身的男士
//进行第一轮迭代,每个男生都选择自己名单上排在首位的女生。
for(int pos=0; pos<NUM; pos++)
{
ChoosePartener(manStack, pos, manArray, ladayArray, manPerfer, manStartPos,ladayNow);
}
while(manStack.size()!=0)
{
int manPos = manStack.top();
manStack.pop();
ChoosePartener(manStack, manPos, manArray, ladayArray, manPerfer, manStartPos,ladayNow);
}
for(int i =0;i<NUM; ++i)
cout<<"Man NO.: "<<i<<" Laday NO.: "<<manPerfer[i]<<endl;
}
//#include <iostream>
using namespace std;
int main()
{
int a[3][3] = {{1,2,3,},{4,5,6},{7,8,9}},i,j,(*p)[3];
cout << "用行指针输出数组的元素" << endl;
for(i=0;i<3;i++){
p = &a[i];
cout << (*p)[0] <<'.' << (*p)[1] << '.' << (*p)[2] << '.' << endl;
}
cout << "用四种方法输出数组里面的元素" <<endl;
for(p=a,i=0;i<3;i++){
for(j=0;j<3;j++){
cout << *(*(p+i)+j) << endl;//<< '\t' << p[i][j] << '\t' << *(p[i]+j) << '\t' << (*(p+i))[j] << endl;
}
}
return 0 ;
}
//#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char *p ,*sp[] = {"wfguwhd","dhashgdwh","feiwu","chenhu","tiancia","wudi"};
int i,j,k,n;//i,j分别是循环变量 使sp[k]指向最小的字符串 n为字符串的个数
n = sizeof(sp)/sizeof(sp[0]);
for(i - 0;i<n-1;i++){
for(k=i;j=i+1;j++){
if(strcmp(sp[k],sp[j])>0)
k=j;
if(k !=i){
p = sp[k];
sp[k] = sp[j];
sp[j] = p;
}
}
}
for(i=0;i<n;i++){
cout << sp[i] << endl;
}
return 0;
}