c - 我从下面的程序中收到了我想要的错误消息,但我不知道为什么。(在 dev c++ 中使用 c 编程)
问题描述
下面的代码是我的 ICT 老师给我的作业。我的客人是因为当我输入错误的字母类时我的 if-else 语句运行了两次,但是,我不知道如何解决它。
#include <stdio.h>
#include <ctype.h>
int main ()
{
float rate, distance, claim;
char class;
printf("......................................................\n");
printf("\t\t\t Class of Vehicle\n");
printf("......................................................\n");
printf("\t\t\t A B C D\n");
printf("\tRate (cent/km)\t 70 60 50 45\n");
printf("......................................................\n\n");
label1:
printf("Enter Class of Vehicle\t\t: ");
scanf("%c", &class);
class = toupper(class);
if (class == 'A')
{
rate = 70;
}
else if (class == 'B')
{
rate = 60;
}
else if (class == 'C')
{
rate = 50;
}
else if (class == 'D')
{
rate = 45;
}
else
{
printf("Invalid input. Please start again.\n");
goto label1;
}
label2:
printf("Enter Distance Travelled (km)\t: ");
scanf("%f", &distance);
if (distance < 0 )
{
printf("Invalid input. Please start again.\n");
goto label2;
}
claim = rate / 100 * distance;
printf("Amount of Claim (RM)\t\t: %.2f", claim);
return 0;
}
解决方案
推荐阅读
- android - SQLite (Android):使用 ORDER BY 更新查询
- azure - Jenkins - 无法创建用户数据目录:/var/lib/jenkins/snap/docker/:只读文件系统
- subset - 子集 dp 问题导致分段错误
- java - 在 iText 7 中计算表格的宽度
- azure-machine-learning-studio - 身份验证问题
- java - 复杂的泛型 java 接口和类
- mysql - MySQL查询以根据日期(字段总和)检索数据
- datetime - 如何为 Xamarin.Android AlarmManager 设置准确的时间
- php - 将每段的第一句改为
- windows - Kotlin native如何使用外部dll