大家好,今天小编关注到一个比较有意思的话题,就是关于c语言计算邮费的问题,于是小编就整理了2个相关介绍c语言计算邮费的解答,让我们一起看看吧。
怎样用c语言编程计算快递运费?
要用C语言编写计算快递运费的程序,需要先确定计算运费的规则和算法,然后根据算法编写代码实现。下面是一个简单的示例程序,可以根据快递重量和距离计算运费:
```c
double calFreight(int weight, int distance) {
double price = 0.0;
if (weight <= 0 || distance <= 0) {
printf("Invalid weight or distance.\n");
} else if (weight <= 10) {
price = 10.0;
可以用c语言编写一个程序来计算快递运费。
首先,需要明确结论:c语言可以用来编写一个快递运费计算器。
其次,需要解释原因:c语言是一种通用高级程序设计语言,可以用于开发各种软件和计算器,并且它有许多数学计算的库函数,可以轻松地实现计算运算费用的功能。
最后,给出内容延伸:为了实现这个功能,可以设置一个程序,让用户通过输入快递物品的重量和寄送距离,程序就可以自动计算运费。
可以先确定价格标准和计算公式,然后再编写程序实现这个功能。
程序可以包括界面设计、输入数据、计算运费、输出结果等多个步骤,需要逐步实现完整的功能。
wm计算标准?
W/M计算运费是国际海运常用计费标准。 W/M :表示按毛重或体积计收,由船公司选择其中收费较高的作为计费吨。 货物计费吨分重量吨(W)和体积吨(M)。 重量吨按货物的毛重,以1000千克为一重量吨;体积吨按货物“满尺丈量”的体积,以1立方米为一体积吨;集装箱指国内集装箱以一自然箱为1箱。 在“货物运价分级表”中,计费单位为“W/M”的货物,按货物的重量吨和体积吨二者择大计费。
WM算法一般由三个表构成,SHIFT,HASH,PREFIX。
SHIFT表就相当于BM算法中的坏字符表,其构建过程有如下几点需要关注
我们对模式集合中所有模式的前m个字符构建SHIFT表,其中的m,是模式***中最短模式的长度值。
对于字符块的长度B的选择,我们一般选择2,3个字节。
在构建SHIFT表的时候,对一个模式p的前m个字符,我们要处理其所有长度为B的子串,并填充对应的SHIFT值,***设字符块大小为B,当前字符快的尾字符与模式前缀的末尾距离为n,则SHIFT[p]=n。以模式abcdefgh为例,***设要处理其前6个字符构成的子串,那么SHIFT[ab]=4,SHIFT[bc]=3,SHIFT[cd]=2,SHIFT[de]=1,SHIFT[ef]=0都要加入SHIFT表中。
如果多个模式串前缀,或者同一模式前缀中,有相同的字符块,则保留其中SHIFT值的最小者。比如模式串p1 = abcab,p2=dcabe,其中对于块ab可以计算出三个SHIFT值3,1,0,这里我们需要保留SHIFT[ab]=0。
HASH表就是对应字符块B,所有SHIFT[B]=0的模式与B的映射关系。比如模式串abcde,bcbde,对于块de,他们的SHIFT值都是0,所以他们都由de索引。
实际上,在WM算法中,是可以没有PREFIX表的,但是对于字母文字来说,可能存在多个模式由一个字符块共同索引的情况,如上例,如果存在10个最末两个字符为de的模式串的话,那么在目标串中检索出de组合之后,要用当前的子串逐个尝试匹配这10个模式串,对于算法效率影响很大。所以WM算法同时截取了模式串的一个长度为2或者3的前缀,构建PREFIX表。在执行中缀查找的基础之上,再执行前缀查找,缩小备选模式集,提高匹配效率。如上例,abcde,bcbde,有共同的字符块de,使得SHIFT[de]=0,如果没有PREFIX表,就需要将游标向前移动5位,然后逐一尝试匹配这两个备选模式,如果有了PREFIX表,我们就可以用两个模式的前缀ab,bc再执行一次索引,一般情况下SHIFT值相同,PREFIX也相同的模式串比例很小,本例中二者的前缀是不同的,索引之后就只剩下一个备选模式,此时执行一次字符串比较即可判断当前位置是否发现了匹配模式。
到此,[_a***_]就是小编对于c语言计算邮费的问题就介绍到这了,希望介绍关于c语言计算邮费的2点解答对大家有用。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/19883.html