卷帘红尘亦爱她 发表于 2022-10-11 21:58:14

新人不理解

double a,b,c;
printf("a=");
scanF("%0.3lf",a);
printf("b=");
scanf("%0.3lf",b);
为啥这种情况只有第一个可以运行

Twilight6 发表于 2022-10-11 22:12:17



第一个 scanf 的 f 变成大写的了吧,改成小写的应该就没问题吧,参考代码:

double a,b,c;
printf("a=");
scanf("%0.3lf",a);
printf("b=");
scanf("%0.3lf",b);

jackz007 发表于 2022-10-11 22:33:10

本帖最后由 jackz007 于 2022-10-11 22:38 编辑

#include <stdio.h>

int main(void)
{
      double a , b , c                        ;
      printf(" a = ")                           ;
      scanf("%lf" , & a)                        ; // scanf() 中格式描述符不可出现类似于 %.3lf 这样的格式指定,变量要取址
      printf(" b = ")                           ;
      scanf("%lf" , & b)                        ;
      printf("a = %.3lf , b = %.3lf\n" , a , b) ;
}
      编译、运行实况:
D:\\C>g++ -o x x.c

D:\\C>x
a = 2
b = 3
a = 2.000 , b = 3.000

D:\\C>x
a = 2.7185678
b = 3.1415926
a = 2.719 , b = 3.142

D:\\C>

xxm8023 发表于 2022-10-11 23:44:31

Twilight6 发表于 2022-10-11 22:12
第一个 scanf 的 f 变成大写的了吧,改成小写的应该就没问题吧,参考代码:

不止,还有变量保存的路径&a&b

Twilight6 发表于 2022-10-11 23:57:55

xxm8023 发表于 2022-10-11 23:44
不止,还有变量保存的路径&a&b



嗷嗷,这样

howzyao 发表于 2022-10-12 00:17:31

xxm8023 发表于 2022-10-11 23:44
不止,还有变量保存的路径&a&b

不止,还有变量保存的路径&a&b
你这个说法让我耳目一新。

我一直理解的是这样,把变量a的地址作为参数,并且实际参与到scanf函数中。可以吗?谢谢

qsva 发表于 2022-10-12 21:29:10


double a,b,c;
printf("a=");
scanF("%0.3lf",a);    //这里scanf   还有scanf后的a、要传地址,写成&a
printf("b=");
scanf("%0.3lf",b);//同上


scanf 的用法scanf(“数据类型字符”,变量地址(& 变量))
页: [1]
查看完整版本: 新人不理解