判断内存空间
在 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;
}
运行时答案是对的,但是提交后却显示答案错误。