c - 函数和指针

标签 c function-pointers

我正在尝试编写一个程序,将摄氏度转换为华氏度,反之亦然。我的程序正在编译,但它给了我错误的结果。我一直试图通过改变指针来改变它,但它不起作用。谁能指出我的问题是什么?在我看来它在声明和指针中,但我不确定。谢谢!

#include<stdio.h>

float f2c(float f);
float c2f(float c);

int main(void)
{
 float cel;
 float celcius;
 float fahren;
 float fah;
 char ch;
 float number;

scanf("%c %f", &ch, &number);

if(&ch == "-f"){
  f2c(number);
  celcius=f2c(number);
  printf("%f", celcius);
  }

 else{
  c2f(number);
  fahren = c2f(number);
  printf("%f", fahren);
  }

return 0;
}

float f2c(float f)
{
 float cel = (f - 32) * 5/9;
 return cel;
} 

float c2f(float c)
{
 float fah = (9 * c/5 + 32);
 return fah;
}

最佳答案

if(&ch == "-f") 这就是问题所在。 应该是:

if(ch == 'f')

关于c - 函数和指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11343885/

相关文章:

c++ - 对于可变长度函数指针,在 C++ 中使用内联函数或 MACROS 哪个更好

c++ - 在 C++11 中将 std::function/mem_fn 与成员函数一起使用

c - 在循环中填充数组

c++ - 如何以编程方式识别视频中更改的帧

c - 为什么 typedef 名称在 C 的结构声明中使用了两次?

c - 如何在 C 函数中使用双指针分配内存?

c - 如何获取调用函数的名称?

c++ - 从C++ Lambda函数创建MPI约简运算符

c - size_t modulo long unsigned int 的意外结果