| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1765 人关注过本帖
标题:判断内存空间
只看楼主 加入收藏
qazxsw321
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2019-10-25
结帖率:25%
收藏
 问题点数:0 回复次数:2 
判断内存空间


在 C 语言中,sizeof() 是一个判断数据类型或者表达式的值所占的内存空间为多少(单位为字节)的运算符。现请你写一段程序来测试一下这个运算符。

输入:
共5行,第一行是一个字符c(只可能是大写字母或小写字母,要求用char存储);第二行是一个整数n(要求用int存储);第三行为一个整数m(要求用 long long 存储),第四行是一个浮点数(要求用float存储);第五行是一个浮点数(要求用double存储)。测试用例保证合法,不会出现超出我们指定的数据类型的范围。

输出:
共五行,每行一次对应输入的五行,输出格式见测试用例。
注意:
1、浮点数均要求保留3位小数;
2、每种数据类型在不同的系统下所占存储的大小可能不通。我们给出的样例是在32位的windows下运行的结果,在其他环境下有可能不同。判题的服务器为64位的linux,测试用例也是按在64位的linux上运行的结果给出,所以部分结果与在32位的windows上的结果不同。但程序只要写对,一定会通过。



输入样例
a
100
1000000000000
3.14
1.23456789



输出样例
Size of 'a' is 1 .
Size of 100 is 4 .
Size of 1000000000000 is 8 .
Size of 3.140 is 4 .
Size of 1.235 is 8 .
#include<stdio.h>
int main()
{
    char c;
    int n;
    long long m;
    float x;
    double y;
    scanf("%c\n %d\n %lld\n %f\n %lf",&c,&n,&m,&x,&y);
    int q,w,e,r,t;
    q=sizeof(c);
    w=sizeof(n);
    e=sizeof(m);
    r=sizeof(x);
    t=sizeof(y);
    printf("Size of '%c' is %d .\n",c,q);
    printf("Size of '%d' is %d .\n",n,w);
    printf("Size of '%lld' is %d .\n",m,e);
    printf("Size of '%.3f' is %d .\n",x,r);
    printf("Size of '%.3lf' is %d .",y,t);
    return 0;
}
运行时答案是对的,但是提交后却显示答案错误。
搜索更多相关主题的帖子: printf Size 要求 存储 sizeof 
2019-11-01 16:58
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:633
专家分:3045
注 册:2011-4-22
收藏
得分:0 
输出多了几个引号。最好一行输出要不要回车?
2019-11-01 18:04
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
主要错误在于 除了a 其它不应该加单引号

其它错误有
scanf("%c\n %d\n %lld\n %f\n %lf" 应该是 scanf(" %c%d%lld%f%lf"
sizeof的类型是size_t,不是int
size_t在printf中用 %zu
2019-11-01 19:42
快速回复:判断内存空间
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024957 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved