Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C程序,通过键盘输入多个数值,用于程序方程_C - Fatal编程技术网

C程序,通过键盘输入多个数值,用于程序方程

C程序,通过键盘输入多个数值,用于程序方程,c,C,这可能是一个简单的解决办法,但我只是在为这件事发愁 我需要我的输出像这样,但我不知道如何在键盘上输入一个值,用于计算冻伤时间和风寒。请帮助我,我是编程新手 /*预处理器指令*/ #包括 #包括 /*主要功能*/ 内部主(空) { /*声明和初始化标识符*/ 双风寒、霜冻时间、气温、风速; /*声明和初始化标识符*/ /*计算风寒*/ 风寒=35.74+(.6215*空气温度)-(35.75*(功率(风速,0.16)))+ (0.4275*空气温度*(功率(风速,0.16)); /*计算霜冻时间*

这可能是一个简单的解决办法,但我只是在为这件事发愁

我需要我的输出像这样,但我不知道如何在键盘上输入一个值,用于计算冻伤时间和风寒。请帮助我,我是编程新手

/*预处理器指令*/
#包括
#包括
/*主要功能*/
内部主(空)
{
/*声明和初始化标识符*/
双风寒、霜冻时间、气温、风速;
/*声明和初始化标识符*/
/*计算风寒*/
风寒=35.74+(.6215*空气温度)-(35.75*(功率(风速,0.16)))+
(0.4275*空气温度*(功率(风速,0.16));
/*计算霜冻时间*/
霜冻时间=((-24.5*(0.667*风速*(1.6))+4.8)+2111.0)*
((功率(-4.8-((气温-32.0)*(.5556)),-1.668));
/*打印气温、风速、风寒和霜冻时间*/
printf(“01234567890123456789012345678901234567890123456789012345678901234567890\n”);
printf(“01********************************************************************\n”);
printf(“02风寒和冻伤计算程序”);
printf(“03\n”);
printf(“04输入空气温度(华氏度):%d”,airtemp);scanf(“%d”,airtemp);
printf(“05输入风速(英里/小时):%d”,风速;scanf(“%d”,风速);
printf(“06\n”);
printf(“07\n”);
printf(“08Results\n”);
printf(“09气温=%5.1华氏度/小时\n10风速=%5.1华氏度\n”
“11风寒=%5.1f\n12霜冻时间=%5.1f分钟\n”,
气温、风速、风寒、霜冻时间);
printf(“13********************************************************************\n”);
printf(“14\n”);
printf(“15\n”);
/*退出程序*/
printf(“16按Enter键退出。\n”);
getchar();
返回0;​

我应该能够输入气温和风速的值,例如气温为5,风速为15,并得到-13.0度风寒和33.3分钟冻伤时间的结果。

读取值后,您必须定义计算

目前,您有:

/* Compute windchill */
windchill = 35.74+(.6215* airtemp)-(35.75*(pow(windspeed, 0.16)))+
               (0.4275*airtemp*(pow(windspeed, 0.16)));

/* Compute frostbitetime */
frostbitetime = (((-24.5*(0.667*windspeed*(1.6)))+4.8)+2111.0)*
                   ((pow(-4.8-((airtemp-32.0)*(.5556)), -1.668)));

...
scanf("%d",&airtemp);
scanf("%d",&windspeed);
问题是,您正在使用垃圾值来计算您的
windchill
frostbitime
。要使其正常工作,请将这些计算放在
scanf
之后

另一个问题是使用的格式类型。手册中:

L 指示转换将是d、i、o中的一个, u、 下一个指针是指向长整型的指针 或无符号长整型(而非整型),或转换 将是e、f或g中的一个,下一个指针是指向 双精度(而非浮点)。指定两个l字符是不正确的 相当于L。如果与%c或%s一起使用,则相应的 参数被视为指向宽字符或 分别为宽字符串

因此,您需要将
%d
更改为
%lf
。您的代码如下所示:

...
scanf("%lf",&airtemp);
scanf("%lf",&windspeed);

/* Compute windchill */
windchill = 35.74+(.6215* airtemp)-(35.75*(pow(windspeed, 0.16)))+
               (0.4275*airtemp*(pow(windspeed, 0.16)));

/* Compute frostbitetime */
frostbitetime = (((-24.5*(0.667*windspeed*(1.6)))+4.8)+2111.0)*
                   ((pow(-4.8-((airtemp-32.0)*(.5556)), -1.668)));

有关更多信息,请参见
fgets()
,或搜索“字符串条目“C”你计算<代码> WrcHILI/<代码>和<代码> FrasBITESTE> <代码>使用<代码> AIR(ToMTEP < /COD>)和 WrnSturn>代码>,但是你的用户只输入了它们的值。这是C,而不是C++。你有没有这样的标签?既然你把它标记为C++,你就应该使用<代码> CIN >选择;< /Cord>在菜单之后得到选择。打印。还可以使用
getopt_long
查看传递命令行参数,您可以让用户将airtemp和windspeed作为程序参数传递。