本人一刚学C语言菜鸟,现求助各位大虾,如果回答的好,有加分.

来源:百度知道 编辑:UC知道 时间:2024/05/19 02:40:54
以下代码编译时出错,是什么原因?应该怎样改正,烦请指正一下:
#include "stdio.h"
void main()
{
float f,c,pd;
sh: ;
printf("\n请选择功能:\n");
printf("\n 1.将华氏温度转换成摄氏温度.\n");
printf("\n 2.将摄氏温度转换成华氏温度.\n");
scanf("%d",&pd);
if (pd=1)
{
printf("\n请输入华氏温度...\n");
scanf("%f",&f);
c=5.0/9*(f-32);
printf("\n该华氏温度转换成摄氏温度为:\n");
printf("%-.2f",c);
goto sh;
};
else if (pd=2)
{
printf("\n请输入摄氏温度...\n");
scanf("%f",&c);
f=9.0*c/5+32;
printf("\n该华氏温度转换成摄氏温度为:\n");f
printf("%-.2f",f);
goto sh;
};
else
{
printf("\n请输入1或2!\n");
goto sh;
};
}
错误信息:C:\Documents and Settings\Administrator\桌面\test\华摄温度转换器v2.0源代码.cp

因为你的pd本来就是float类型的,对本程序而言,pd应该用int类型,建议修改如下:

#include "stdio.h"
void main()
{
float f,c;
int pd;/****************注意 这里*/
sh: ;
printf("\n请选择功能:\n");
printf("\n 1.将华氏温度转换成摄氏温度.\n");
printf("\n 2.将摄氏温度转换成华氏温度.\n");
scanf("%d",&pd);
if (pd==1) /*此处似乎应该用==而不是=*/
{
printf("\n请输入华氏温度...\n");
scanf("%f",&f);
c=5.0/9*(f-32);
printf("\n该华氏温度转换成摄氏温度为:\n");
printf("%-.2f",c);
goto sh;
}/*****************原程序此处有多余的分号,应该去掉*/
else if (pd==2) /*此处似乎应该用==而不是=*/
{
printf("\n请输入摄氏温度...\n");
scanf("%f",&c);
f=9.0*c/5+32;
printf("\n该华氏温度转换成摄氏温度为:\n");/*******************原程序此处有多余f,应该去掉*/
printf("%-.2f",f);
goto sh;
}/*****************原程序此处有多余的分号,应该去掉*/
else
{
pri