如何在C中输入一个带0和小数的数字并做它的正弦?
How to input a number with 0 and decimal in C and do its sine?
我目前正在学习 C 课程,我必须编写一个程序来打印 (0, 1) 之间输入 x 的正弦函数。问题是,我不知道我做错了什么。
double x;
double result = 0;
printf("Input a number betwen 0 and 1: ");
scanf("%.f", x);
result = sin(x);
printf("\aThe sine of %.8f is %.8f\n", x, result);
system("pause>null");
return 0;
这是我写的代码;当我尝试输入 0.5 时机器 returns 给我一个“0.00000 的正弦是 0.0000”,但是如果我将变量声明为 0.5,程序工作正常并给出正确答案。当我尝试使用 scanf
输入数字时出现错误,并且 activity 说我必须输入它。
我在网上查了一下,什么也找不到,我是这个世界的新手,大约 2 周前开始。
您的 scanf("%.f", x);
行有两个基本问题。首先,%.f
格式说明符是错误的:.
对于此类输入无效,并且 double
值需要 l
(小写 L)前缀 - 所以使用 %lf
.
其次,与该格式说明符对应的参数必须是合适的 (double
) 变量的 地址。
因此,使用 scanf("%lf", &x);
,您的程序将运行。
启用警告
double x; scanf("%.f", x);
应该发出警告,因为 "%f"
需要匹配的 float *
,而不是 double
.
使用"%lf"
读一个double
。
更好的是,检查 scanf()
return 值以确保发生有效输入。
if (scanf("%lf", &x) == 1) {
result = sin(x);
printf("\aThe sine of %.8f is %.8f\n", x, result);
}
我目前正在学习 C 课程,我必须编写一个程序来打印 (0, 1) 之间输入 x 的正弦函数。问题是,我不知道我做错了什么。
double x;
double result = 0;
printf("Input a number betwen 0 and 1: ");
scanf("%.f", x);
result = sin(x);
printf("\aThe sine of %.8f is %.8f\n", x, result);
system("pause>null");
return 0;
这是我写的代码;当我尝试输入 0.5 时机器 returns 给我一个“0.00000 的正弦是 0.0000”,但是如果我将变量声明为 0.5,程序工作正常并给出正确答案。当我尝试使用 scanf
输入数字时出现错误,并且 activity 说我必须输入它。
我在网上查了一下,什么也找不到,我是这个世界的新手,大约 2 周前开始。
您的 scanf("%.f", x);
行有两个基本问题。首先,%.f
格式说明符是错误的:.
对于此类输入无效,并且 double
值需要 l
(小写 L)前缀 - 所以使用 %lf
.
其次,与该格式说明符对应的参数必须是合适的 (double
) 变量的 地址。
因此,使用 scanf("%lf", &x);
,您的程序将运行。
启用警告
double x; scanf("%.f", x);
应该发出警告,因为 "%f"
需要匹配的 float *
,而不是 double
.
使用"%lf"
读一个double
。
更好的是,检查 scanf()
return 值以确保发生有效输入。
if (scanf("%lf", &x) == 1) {
result = sin(x);
printf("\aThe sine of %.8f is %.8f\n", x, result);
}