C语言编程题?

编写一个程序,显示不同类型的变量占用的内存总空间,必要时使用MB、KB和B(参见测试用例)具体如下:从键盘输入单个字符表示数据类型,其中:'i'表示int,'s'表示sh... 编写一个程序,显示不同类型的变量占用的内存总空间,必要时使用MB、KB和B(参见测试用例)
具体如下:
从键盘输入单个字符表示数据类型,其中:
'i'表示int, 's'表示short,'c'表示char,
'l'表示long,'d'表示double,'f'表示float;
再从键盘输入一个整数,表示存储多少个指定类型的数据,
通过您的程序,计算并输出总的内存字节数。
要求:
1. 必须使用sizeof()运算符
2. 以MB、KB和B按指定形式显示,假设1Mb=1000000B, 1kb=1000B
测试用例 1:
输入:
i 55500
输出:
222 KB and 0 B

测试用例 2 :
输入:
d 876543
输出:
7 MB and 12 KB and 344 B

测试用例 3 :
输入:
s 25
输出:
50 B

测试用例 4 :
输入:
c 20000000
输出:
20 MB and 0 KB and 0 B
展开
 我来答
百度网友63b0960
2020-05-01 · TA获得超过1468个赞
知道小有建树答主
回答量:661
采纳率:90%
帮助的人:206万
展开全部

分析关键点:

1、根据字符的输入,检测sizeof执行的类型,这个要分类,所以需要用到分支结构,多个分类的还是switch会比较清楚一些

2、根据输入的数量进行计算,考虑基础单位是字节,所以数值可能比较大,计算记过应该使用long等大一些的类型。

3、根据总的字节数进行换算。这里最多就到兆字节,所以就图个省事,算穷举一下了。其实也可以利用递归的思路,一直到更高的单位的。


代码和测试结果如图,我这里是C++环境就没有贴出来引用的库,所以还请根据自己的环境引用库,比如stdio等:


目前测试与用例一致。注意我这里每一个输出有个'\n',如果是网络教室之类的需要注意下系统要求有没有要求换行。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式