你好, 欢迎｡ 在本演示中, 我想为我们的最后一个挑战提供一个解决方案｡
所以我想为我们的c程序提供一个解决方案,
它需要花费几分钟的时间, 并将其转换为以天为单位的表示, 以及以年为单位的表示｡
不一定是实用的程序,
但它会演示一些关键的概念, 你们可以学习主要使用算术运算符, 从键盘上获得输入｡
你还必须使用转换运算符, 我在挑战中可能没有提到,
但希望你们能明白, 因为当你做的时候, 不需要使用转换运算符, 你不应该一开始我认为解需要模运算符｡
但是如果你求模, 我想只需要2个整型数｡
所以不管怎样, 我们开始吧｡
让我们启动冷模块, 创建一个项目, 完成我们目前非常擅长的基本内容｡
所以我不打算详细介绍, 你们可以看｡
我将创建一个新的项目, 它将是一个控制台项目,
肯定是c,
我将给它命名, 你总是希望得到好的有意义的名字｡
我会说分钟换算｡
所以它就像一个分钟转换应用程序｡
现在我要修改我们的main｡ c文件中｡
所以我们把这个扔掉吧｡ 我们将保留include语句｡
像往常一样, 你会想添加评论,
确保你添加评论, 只是因为我不这样做并不意味着你不应该这样做｡
这是惯例｡ 这只是为了效率和时间的目的, 我把它省去了｡
我喜欢在程序的最上面做的是清除我需要使用的变量, 然后初始化它们｡
我们就这样开始吧｡ 我将为分钟创建一个整型变量, 用户将输入｡
我就把这一分钟记下来｡ 我将它初始化为0｡
我打算创造一个替身好几年｡
这实际上可能会很长, 取决于你想做多少计算,
因为你可能会得到一个很大的小数点｡
这么久也许是个更好的选择｡
但我现在要用一个double, 初始化0. 0和等于0天数
0.
现在我想从用户那里获得输入｡
为了从用户那里获得输入, 你要做的第一件事就是告诉用户输入｡
因此, 我将显示一些输出,
告诉您请输入分钟数｡
它会在那里放一个冒号和一个空格, 最后以分号结尾｡
接下来我将实际获取输入｡
这里你可能会说从用户那里获得输入作为评论｡
我们如何从用户那里获得输入？ 我们使用scanf函数｡
请记住前面的内容, 就说scanf, 类似于printf｡
第一个参数是要读取以进行转换的数据类型｡
请记住, 所有内容都以字符串或文本的形式读入｡
所以你必须把它转换成你要储存它的方式｡
所以你把它放在双引号里, 就像printf一样｡ 使用格式说明符｡
给你 我只想把它存储为小数｡
所以我会说d是整数, 不是十进制整数,
抱歉｡
下一个参数是你要存储的变量｡
在我将要存储它的分钟输入｡
现在记住scanf和我实际上只有scanf, scanf对于除字符串之外的每一种数据类型,
你都必须提供&号｡
地址子运算符｡
所以我们必须提供｡ 我们要阅读一个数字, 所以我们必须使用&符号｡
记住这一点｡ 然后我想用分号加这个｡
在这一点上, 你可能应该测试｡
请确保您可以从用户那里获得输入｡ 您可能只有一个printf来显示您输入的内容｡
但既然我知道这是正确的, 我就要继续前进｡
我需要计算一下第15行｡
主要是, 我想以年为单位存储分钟数｡
我现在要做的是创建另一个变量, 我忘记了,
它将存储一年中的分钟数｡
因为这会让事情更简单｡ 所以这里我只说分钟和年｡
您会注意到, 我在这里使用的变量命名约定是camelCase｡
就是第一个字母小写然后后面的单词第一个字母大写.
我之前没有解释所以我想我应该提一下｡
第一个计算, 我想设置分钟和年,
因为这是我计算年的方法｡
所以分钟和年实际上等于——我喜欢用括号来组织, 所以一切都很清楚｡ 这让它更易读｡
它是60, 因为60是一小时的分钟数｡
然后乘以一天中的小时数, 也就是24小时｡
我将这个数字乘以一年的天数, 也就是365天｡
所以这个计算会给予我一年有多少分钟｡
现在我可以用这个来计算我的年龄了｡
所以在下一行, 我可以说years equal-—所以我们在这里使用了赋值运算符,
equals｡
然后我们在第16行的括号里用星号表示乘法｡
真漂亮｡
年就等于, 我想再用一次括号.
用户输入的分钟数除以一年中的分钟数｡
所以如果你输入5000分钟,
一年有20000分钟, 5000除以20000就给予了多少年, 也就是0点左右.
为了计算天数, 这里我只说输入的分钟数除以60｡
因为一小时有60分钟｡
一旦我有了小时数, 我就可以用它除以天数, 也就是24｡
0.
如果我想的话, 我可以把这个放在另一个计算中｡
但是, 我再次强调, 我想确保我们按照正确的顺序进行｡
首先, 我将分钟除以60｡
你其实不用担心这个因为我们在这里做除法, 所以结合性是从左到右的, 我不需要这些括号.
但是我总是喜欢加括号, 因为这样会使东西更可读｡
所以让我们加上最后一个｡
这有点多余｡ 我这里都不需要｡
所以我们先不谈这个, 只谈第一个｡ 这应该能显示我们的日子
现在我已经完成了我的计算, 并使用了一些运算符｡
我想做一个printf来打印出我的数据｡
这里我先把分钟打印出来, % d分钟大约是%
f年和% f天｡
然后我将添加一个换行符｡
我们用printf来显示变量的输出, 百分比符号记住了我们的标记说明符｡
我想打印的第一件事是分钟, 所以我必须把分钟放在第一个逗号后面｡
第二个是年, 我想用年来表示, 因为这是年的百分比｡
第三个是天之类的｡
我现在应该编译和运行, 他们应该为我做我的转换｡
所以让我们继续构建｡ 我没有早晨, 没有错误｡
让我们跑步吧, 我甚至不知道一年有多少分钟｡
我不知道该如何测试, 但我们先从5000分钟开始｡
当我运行程序时, 它要求我输入分钟数, 我输入5000｡
如果你没有输入一个数字, 你可能会崩溃,
因为你在scanf函数中把它转换成一个数字｡
我按回车键, 这显示5000分钟大约是0｡
009513年和3.
47222天, 这似乎是有道理的,
因为一小时60分钟乘以24, 一天大约是2400次,
所以2400次和2400次,
不是60次｡
抱歉, 60乘以24大约是1200｡
所以1200除以5000, 每天大概有3次｡
四个在那里｡
所以大致上这看起来是正确的｡
所以你可以运行多次, 输入一些你会注意到的大数字｡
我们这里只存放替身｡ 所以如果你运行它,
你试图输入一个太大的数字, 比如6000亿, 你可能会得到不正确的——所以你可能会有错误｡
这就是数据类型的问题｡
所以我把它存储在一个int中｡ Int只有8个字节｡ 我输入了这个巨大的数字｡
那是不能储存在里面的｡
所以当我打印出来的时候, 它打印在一个完全不同的数字上, 184298154｡
那是因为我输入的值比int大｡
所以你可能要考虑一下,
如果你想让这个程序更精确, 你想输入更大的数字来改变一些数据类型,
把整型改成双精度型, 甚至把双精度型改成长整型｡
所以这是说350年127000天左右｡
因此,
一个不错的小转换应用程序, 再次尝试为您提供一些数据类型以及运算符的理解｡
我们可以有很多不同的转换应用程序｡
另一个不错的应用程序, 你想写更多的实践将华氏到摄氏度的应用程序｡
编写一个应用程序, 允许用户输入华氏温度, 然后将其转换为摄氏温度｡
我的意思是有很多很多不同的场景你会出现｡ 但这将迫使您使用运算符｡
如果我们愿意的话, 我们甚至可以在这里选角｡
如果我们不喜欢日期太精确, 也许我们想把double改为int｡
我们想把它弄得不那么精确｡
实际上我们可以把它转换成一个it, 只需提供括号, 然后执行int运算.
而这实际上需要几天的时间｡
如果是十进制3｡ 549之类的, 它会把它转换成3｡
也许这对用户更好, 由你决定｡
但我们先把它当作一个替身｡
但这是你学习的方式｡ 你摆弄这个程序,
尝试不同的场景, 尝试不同的输入, 确保一切都是正确的｡ -谢谢—谢谢