<分区>
好的,这是我的代码:
#include <stdio.h>
void convert_weight(int x , char a, int* y, char* b)
{
if (a == 'F')
*y = (x-32) * 5 / 9;
*b = 'C';
if(a == 'C')
*y = x*9 / 5 + 32;
*b = 'F';
}
int main()
{
int degrees1 = 50, degrees2;
char scale1 = 'F', scale2;
convert_weight(degrees1, scale1, °rees2, &scale2);
printf("%d %c = %d %c\n", degrees1, scale1, degrees2, scale2);
degrees1 = 10;
scale1 = 'C';
convert_weight(degrees1, scale1, °rees2, &scale2);
printf("%d %c = %d %c\n", degrees1, scale1, degrees2, scale2);
return 0;
}
这是输出:
50 F = 10 F
10 C = 50 F
请注意,我的第一行返回的是 10 F 而不是 10 C。我不太清楚为什么会这样。如果 char a == 'F'
那么我试图通过取消引用将 scale2 设置为等于 'C',就像我对 degrees2 所做的那样,它似乎工作得很好。我在我的代码中看不到导致两个输出都得到“F”的错误。