函数和结构(学习笔记<1>)

虽然结构变量和数组变量一样都可以传递多个数据项,但涉及函数时结构变量更接近于单值变量。可以把结构变量看作一个整体。进行传值和作为函数的返回值。与数组不同的地方,数组名可以作为第一个元素的地址,而结构名只能作为结构名,取地址需要用运算符&。

1.传递和返回结构

结构小时,按值传递结构(结构较大时要加内存)

根据书上例子(自己简化了一下) 从A地到B地需要3小时5分钟,B地到C地需要1小时25分钟,最后求最后A到C的时间总和,可以先用一个结构表示,一个成员表示小时(hours),一个成员表示分钟(mins)

struct MoveTime{     //定义一个结构MoveTime
	int hours;
	int mins;
};

现在需要一个返回该结构的函数sum()函数原型,返回类型也应该为MoveTime,参数应该一致

MoveTime sum(MoveTime m1,MoveTime m2 );      //格式为 返回类型(结构)+函数名+(参数(声明变量).参数(声明变量))

中间需要对时间数据进行一个处理,先将分钟相加,取整得出小时值,取60余得剩余分钟值

const int Hr=60;    //定义一个小时的常量
total.mins=(m1.mins+m2.mins)%60;      //得出分钟值
total.hours=(m1.mins+m2.mins)/60+(m1.hours+m2.hours);    //得出小时值 

将上述代码进行整合

#include<iostream>
using namespace std;
const int Hr = 60;    //定义一个小时的常量
struct MoveTime {     //定义一个结构MoveTime
	int hours;
	int mins;
};
MoveTime sum(MoveTime m1, MoveTime m2);
int main() {
	MoveTime D1 = {5,45};
	MoveTime D2 = {4,55};
	MoveTime trip = sum(D1, D2);     //sum返回的结构赋值给新的结构变量trip
	cout << "该行程的总时长为" << trip.hours << "小时" << trip.mins << "分钟\n";
	
	
	return 0;
}

MoveTime sum(MoveTime m1, MoveTime m2) {
	MoveTime total;      //定义一个求和的结构

	total.mins = (m1.mins + m2.mins) % Hr;      //得出分钟值
	total.hours = (m1.mins + m2.mins) / Hr  + (m1.hours + m2.hours);    //得出小时值 
	return total;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值