E0167"int"类型的实参与"constchar*"类型的形参不兼容什么问题怎么解决

发布时间:2019-07-29 18:47:00

#include <stdio.h>

#include <stdlib.h>

#define Pi 3.1415927


int main()

{

double Input,ra;

printf("Please input your number to calcution what you want\n\n1.Ball's Volume\n2.Surface Area of The Ball\n\n");

scanf("%lf", &Input);

if (Input == 1) 

{

printf(" \n\n\nV=(4/3)πr^3\nPlease input 'r'\n");

scanf("%lf",&ra);

int f = (4 * Pi * ra * ra * ra / 3);

printf(f);这步显示f出错,int类型实参与const char*类型实参不兼容

getchar();

return 0;

}


推荐回答

按你的程序作了必要的几处修改:#include <stdio.h>#include <stdlib.h>#define Pi 3.1415927int main(){  double Input,ra,f;  printf("Please input your number to calcution what you want\n\n1.Ball's Volume\n2.Surface Area of The Ball\n\n");  scanf("%lf", &Input);  if (Input == 1)    {     printf(" \n\n\nV=(4/3)Pi*r^3\nPlease input 'r'\n");     scanf("%lf",&ra);     f = (4 * Pi * ra * ra * ra / 3);     printf("%lf",f);     getch();    } return 0;}程序能够运行了:

但是你的 2.Surface Area of The Ball 程序还未加入。

其他回答

chartowchar不是库函数 , 是你自己定义的函数,定义的时候原型应该是:wchar_t chartowchar( char* );string::data( )返回的是const char* 从const char*到char*时不能直接转换的,解决方式:chartowchar( const_cast<char*>( data.data( ) );但最好不要这样使用,建议将chartowchar的参数定义为const char*.

你程序有多个问题(你的C/C++还没有入门)

关键的是

printf(f);

C/C++的printf第一参数必须是字串,它不能直接输出非字串变量的,正确的

printf(“%f\n",f);

注意,前提是

int f = (4 * Pi * ra * ra * ra / 3);

要改为

double f = (4 * Pi * ra * ra * ra / 3);

另外,你的Input最好是int的,因为理论上,浮点不能直接用==判断的

最后,程序不完整(最后面至少少了})

以上问题属网友观点,不代表本站立场,仅供参考!