关于C语言的问题,如图不解释...

如题所述

这里有两个警告。

第一个是说你的scanf_s函数少了一个参数。

scanf 和 scanf_s 这两个函数是有区别的。你可以尝试将scanf_s 换为 scanf

或者查阅scanf_s的正确用法。

scanf()函数是标准C中提供的标准输入函数,用以用户输入数据
scanf_s()函数是Microsoft公司VS开发工具提供的一个功能相同的安全标准输入函数,
从vc++2005开始,VS系统提供了scanf_s()。
在调用该函数时,必须提供一个数字以表明最多读取多少位字符。

第二个是在第15行,double转化为float可能会丢失精度的警告,

但是没有什么大问题可以无视,如果实在想改可以把前面的float声明替换为double

追问

嗯,貌似还有一个问题

追答

第二个是在第15行,double转化为float可能会丢失精度的警告,
但是没有什么大问题可以无视,如果实在想改可以把前面的float声明替换为double。

原因出在。宏定义的那个62.4系统会当作double来处理,而你定义的变量类型为float。所以这里出现了隐式的强制类型转换,所以出现了警告。

追问

编好的exe程序工作不正常,还有一个错误

追答

因为VS的缘故不让使用scanf,那你换成scanf_s,但是需要有三个参数
或者你在头文件的下面加上这一句。
#define _CRT_SECURE_NO_DEPRECATE

这样就可以使用scanf了

追问

第三个参数?加printf语句还是

追答

你在头文件的下面加上这一句。
#define _CRT_SECURE_NO_DEPRECATE
就可以使用scanf了

追问

这样吗?还是不行的样子..依然要我用_s

好像打错了..

追答

那你就用scanf_s

他有三个参数,比scanf多的一个参数就是最多能读入多少个字符。


你就用scanf_s
把sacnf_s( "%s", name )改为 sacnf_s( "%s", name,40 )

另外:

新手学C/C++,不推荐使用VS和VC,推荐使用dev-C++,codeblocks等编译器。

等学得差不多了,再用vs去做工程和项目。

追问

感谢

温馨提示:答案为网友推荐,仅供参考