程序修改如下,主要是将chioc改为数组,这是C语言输入时常发生的问题,用%c获取一个字符,程序在输入weight之后输入缓冲区中有一个回车,系统自动识别为一个字符,所以不再等待输入其他字符了,改为%s输入,可以避免这个问题。
int main()
{ float postage,weight;
char choic[3];
printf("请输入重量(g):");
scanf("%f",&weight);
if(weight>1.0)
{ printf("请问需要加快吗?需要请输入Y,不需要请输入N。\n");
scanf("%s",choic);
if(choic[0]=='Y' || choic[0]=='y')
{ postage=0.8+(weight-1.0)*0.50+2.00;
printf("您所需付款为%3.2f元。\n",postage);
}
else if(choic[0]=='N' || choic[0]=='n')
{ postage=0.8+(weight-1.0)*0.50;
printf("您所需付款为%3.2f元\n",postage);}
else printf("您的输入有误"); /*当输入字符不是Y或N时,显示输入有误*/
}
else printf("重量未超过1g,不收取任何费用,谢谢!\n");
system("pause");
}