|
10鱼币
1.此段代码中的fah变量,如果声明为int类型,最终答案为7.00(小数部分全是0);如果按小甲鱼老师的答案,声明为float类型,则能得到正确答案,小数部分也不是0了。请问这是为啥?
- #include <stdio.h>
- int main()
- {
- int fah;
- float cel;
- printf("请输入华氏度:");
- scanf("%d", &fah);
- cel = (fah - 32) * 5 / 9;
- printf("转换为摄氏度是:%.2f\n", cel);
- return 0;
- }
复制代码
2.
(1)此段代码中,请问变量a的数量为何要设置为256?
(2)而且char类型的取值范围最高不是255吗?
(3)小甲鱼老师说,不写数量,编译器会自动计算数量,可是我自己试了char a[];这种写法会报错,char a[]="";则会乱码,请问是为什么呀?
- #include <stdio.h>
- int main()
- {
- char a[256];
- int h;
- float m, in;
- double lb;
- printf("请输入您的姓名:");
- scanf("%s", &a);
- printf("请输入您的身高(cm):");
- scanf("%d", &h);
- printf("请输入您的体重(kg):");
- scanf("%f", &m);
- printf("========== 正在为您转换 ==========\n");
- in = h / 2.54;
- lb = m / 0.453;
- printf("%s的身高是%.2f(in),体重是%.2f(lb)\n", a, in, lb);
- return 0;
- }
复制代码
第二个问题:
(1)a是一个字符数组,它可以储存256个英文字符,储存长度为255的字符串
(2)char类型的取值是255,但这里的意思是创建一个数组a,它可以放256个char类型的值
(3)小甲鱼老师的意思是
- #include <stdio.h>
- int main()
- {
- char a[] = "Hello";
- printf("%s\n",a);
- return 0;
- }
复制代码
这样写是没问题的,因为他会计算"Hello"的长度,但你这里char a[];写既没有指定储存的字符串,又没有指定长度,当然会报错,至于char a[] = "";的意思等同于char a[] = {'\0'};也就是说,a的数量为1,然而你后面让这个数量为1的字符数组去装一个名字,当然会乱码
|
最佳答案
查看完整内容
第二个问题:
(1)a是一个字符数组,它可以储存256个英文字符,储存长度为255的字符串
(2)char类型的取值是255,但这里的意思是创建一个数组a,它可以放256个char类型的值
(3)小甲鱼老师的意思是
这样写是没问题的,因为他会计算"Hello"的长度,但你这里char a[];写既没有指定储存的字符串,又没有指定长度,当然会报错,至于char a[] = "";的意思等同于char a[] = {'\0'};也就是说,a的数量为1,然而你后面让这个数量为1的字符数组去装 ...
|