C艹函数与结构体
传递指针
代码:
#include <iostream> #include <cmath> 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(int argc, char const *argv[]) { using namespace std; rect rplace; polar pplace; std::cout << "Enter the x and y values:"; while (cin >> rplace.x >> rplace.y) { rect_to_polar(&rplace, &pplace); show_polar(&pplace); std::cout << "Next two numbers (q to quit)" << '\n'; } std::cout << "Done." << '\n'; return 0; } void show_polar(const polar * pda) { using namespace std; const double Rad_to_deg = 57.29577951; std::cout << "distance = " << pda->distance; std::cout << ", angle = " << pda->angle * Rad_to_deg; std::cout << " degrees" << '\n'; } void rect_to_polar(const rect * pxy, polar * pda) { using namespace std; pda->distance = sqrt(pxy->x * pxy->x + pxy->y * pxy->y); pda->angle = atan2(pxy->y, pxy->x); }
传递结构体
#include <iostream> #include <cmath> 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(int argc, char const *argv[]) { using namespace std; rect rplace; polar pplace; std::cout << "Enter the x and y values: " << '\n'; while (cin >> rplace.x >> rplace.y){ pplace = rect_to_polar(rplace); show_polar(pplace); std::cout << "Next two numbers (q to quit) :" << '\n'; } return 0; } polar rect_to_polar(rect xypos) { using namespace std; 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) { using namespace std; const double Rad_to_deg = 57.29577951; std::cout << "distance = " << dapos.distance << '\n'; std::cout << ", angle = " << dapos.angle * Rad_to_deg << '\n'; }
作者:沐禹辰
出处:http://www.cnblogs.com/renfanzi/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
出处:http://www.cnblogs.com/renfanzi/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。