函数与结构
eg
eg
eg1
#include <iostream>
using namespace std;
struct travel_time
{
int hours;
int mins;
};
const int Mins_per_hr = 60;
travel_time sum(travel_time t1,travel_time t2);
void show_time(travel_time t);
int main()
{
travel_time day1 = {5,45};
travel_time day2 = {4,55};
travel_time trip = sum(day1,day2);
cout<<"Two-day total:";
show_time(trip);
travel_time day3 = {4,32};
cout<<"Three-day total:";
show_time(sum(trip,day3));
system("pause");
return 0;
}
travel_time sum(travel_time t1,travel_time t2)
{
travel_time total;
total.mins = (t1.mins+t2.mins)%Mins_per_hr;
total.hours = t1.hours+t2.hours+(t1.mins+t2.mins)/Mins_per_hr;
return total;
}
void show_time(travel_time t)
{
cout<<t.hours<<" hours,"<<t.mins<<" mins.\n";
}
eg2结构拷贝
#include <iostream>
#include <cmath>
using namespace std;
struct polar
{
double distance;
double angle;
};
struct rect
{
double x;
double y;
};
polar rect_to_polar(rect xypos);
void show_polar(polar dapos);
int main()
{
rect rplace;
polar pplace;
cout<<"Enter the x and y values:";
while(cin>>rplace.x>>rplace.y)
{
pplace = rect_to_polar(rplace);
show_polar(pplace);
cout<<"Next two numbers(q to quit):";
}
cout<<"Done/\n";
system("pause");
return 0;
}
polar rect_to_polar(rect xypos)
{
polar answer;
answer.distance = sqrt(xypos.x*xypos.x+xypos.y*xypos.y);
answer.angle = atan2(xypos.y,xypos.x);
return answer;
}
void show_polar(polar dapos)
{
const double Rad_to_deg = 57.29577951;
cout<<"distance = "<<dapos.distance;
cout<<",angle = "<<dapos.angle*Rad_to_deg;
cout<<" degrees\n";
}
eg3指向原始结构指针
#include <iostream>
#include <cmath>
using namespace std;
struct polar
{
double distance;
double angle;
};
struct rect
{
double x;
double y;
};
void rect_to_polar(const rect* pxy,polar *pda);
void show_polar(const polar * pda);
int main()
{
rect rplace;
polar pplace;
cout<<"Enter the x and y values:";
while(cin>>rplace.x>>rplace.y)
{
rect_to_polar(&rplace,&pplace);
show_polar(&pplace);
cout<<"Next two numbers)(q to quit):";
}
cout<<"Done.\n";
system("pause");
return 0;
}
void show_polar(const polar* pda)
{
const double Rad_to_deg = 57.29577951;
cout<<"distance = "<<pda->distance;
cout<<",angle = "<<pda->angle*Rad_to_deg;
cout<<" degrees\n";
}
void rect_to_polar(const rect* pxy,polar* pda)
{
pda->distance = sqrt(pxy->x*pxy->y+pxy->y*pxy->y);
pda->angle = atan2(pxy->y,pxy->x);
}

本文介绍了两个关于结构体和函数的示例:第一个示例展示了如何定义结构体并使用函数来操作这些结构体;第二个示例则进一步讨论了如何通过指针来传递结构体变量。
6747

被折叠的 条评论
为什么被折叠?



