S1E8课后作业
我不知道为什么我的答案跟小甲鱼的不一样我输入45出来的是-17.78,我感觉除了变量命名不一样,其他好像都一样啊= =这是小甲鱼的:
#include <stdio.h>
int main()
{
float fah, cel;
printf("请输入华氏度:");
scanf("%f", &fah);
cel = (fah - 32) * 5 / 9;
printf("转换为摄氏度是:%.2f\n", cel);
return 0;
}
这是我的:
#include <stdio.h>
int main()
{
double f;
double c;
printf("请输入华氏度 : ");
scanf("%.2f", &f);
c = (f - 32) * 5 / 9;
printf("转换为摄氏度是 : %.2f\n", c);
return 0;
}
还有就是为什么这个程序不需要#include <math.h>这个指令- - scanf("%.2lf", &f); double型的要用 %lf 输入 他们都答完了我来水一波。
不用math是因为你里面没有数学方法(比如pow()) 大马强 发表于 2021-8-9 15:44
但是我改了之后答案还是错的啊... 大马强 发表于 2021-8-9 15:44
就是不管填多少,出来都是17.78 fabulist丶 发表于 2021-8-9 18:10
就是不管填多少,出来都是17.78
-17.78 fabulist丶 发表于 2021-8-9 18:10
-17.78
好像不能用
scanf("%.2lf", &f);
原因未知,就算是输入 45.00也是,f没有被赋值
这样就可以了
scanf("%lf", &f); 另外在使用 scanf 时还必须注意以下几点:
1. scanf 函数中没有精度控制,如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数部分为2位的实数。
2. 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格, TAB或回车作间隔。 C 编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时, A 即为非法数据)时即认为该数据结束。
3. 在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符
转自https://blog.csdn.net/z13717741865/article/details/78912006?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162850453616780357223621%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=162850453616780357223621&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-2-78912006.first_rank_v2_pc_rank_v29&utm_term=c%E8%AF%AD%E8%A8%80%E6%A0%BC%E5%BC%8F%E5%8C%96%E8%BE%93%E5%85%A5%E4%B8%8D%E8%83%BD%E6%9C%89%E7%B2%BE%E5%BA%A6&spm=1018.2226.3001.4187
页:
[1]