#include<stdio.h>
#define AZ 1.8
#define BZ 273.16
#define CZ 32.0
void Temp();
void main()
{
double f;
float c,k;
printf("Please input the temperature:\n");
scanf("%f",&f);
Temp();//调用函数
}
void Temp()
{
while(f>-169.4)
{
c=AZ*f+CZ;
k=c+BZ;
scanf("%f",&f);
printf("The three Temperature is:\n");
printf("%.2f is Fahrenheit,%.2f is Celsius,%.2f is Kelvin\n",f,c,k);
}
printf("Done\n");
} 写的是一个三种温度转换显示的 调试中不断显示 warning C4101: 'c' : unreferenced local variable c k f 都提示有这个问题 请求帮助
警告的意思为:警告C4101:'e':未引用的局部变量
原因是局部变量的错误使用。你的 f,c,k都是在main()函数里面定义的,然而,你在使用这些变量时是在temp()函数里面,在某个函数里面定义的变量只能在此函数中使用,所以你会产生错误。解决办法为,将这些变量定义为全局变量。
问题成功解决。
拓展资料
在计算机科学中,局部变量是拥有局部作用域的变量。这样的变量只能由声明它的函数或块中访问。在仅有两层可见性的程序设计语言中,局部变量对应全局变量;另一方面,许多类ALGOL语言允许任意多层的嵌套函数,各自拥有私有变量、函数、常量和类型。
大多数程序设计语言中,局部变量是直接存储在调用堆栈上的自动变量。即递归函数调用自己时,局部变量的每一份实例都在不同的地址空间中。于是在当前作用域对变量的声明、写入、读取都不会在其被声明的函数外产生副作用。
为什么当我把f定义成double类型时 程序就无法正常运行
追答我也是新手。。不知道说得对不对。。
double 应该要加个l。。就是lf指双精度?
也就是double对应lf float对应的f。。
表示出不来额 如果用double定义 每次出来只能将f默认为0
本回答被提问者采纳