用C语言编写的程序根据特定的条件确定司机的保险状况。

 最近要熟悉if语句的使用,找来这么一个题目:

用C语言编写的程序根据特定的条件确定司机的保险状况,符合以下情况则系统应该显示其已经投保,否则为未投保:

⑴如果司机已婚,则他(她)已经投保;

⑵如果司机是未婚的男性,且年龄在30岁以上,则他已经投保;

⑶如果司机是未婚的女性,且年龄在25岁以上,则她已经投保。

 准备测试用例来检查用户输入的详细资料,给出期望的输出结果,如果输入错误的数据,将显示合适的错误信息。

 代码如下:(本人较懒,没有注释,有疑问可以评论,看到就回)

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

int driver_insurance(char sex[],int age,char marry[]);
int determine(char sex[],int age,char marry[]);
void value(int sum);
char  *MARRY_= "已婚";
char *NOTMARRY_ = "未婚";
char *BOY_ = "男";
char *GIRL_ = "女";
int main()
{
    int age;
    char sex[10];
    char marry[10];
    printf("请输入您的性别,年龄,婚姻状态\n");
    while(1){
    int flag=2;
    scanf("%s %d %s" ,&sex,&age,&marry);
    switch(determine(sex, age,marry))
    {
    case 0: flag=driver_insurance(sex,age,marry); break;
    case 1: printf("请输入正确的性别!\n"); break;
    case 3: printf("请输入正确的年龄!\n"); break;
    case 5: printf("请输入正确的婚姻状态!\n"); break;
    case 4: printf("请输入正确的性别,年龄!\n"); break;
    case 6: printf("请输入正确的性别,婚姻状态!\n"); break;
    case 8: printf("请输入正确的年龄,婚姻状态!\n"); break;
    default: printf("请输入正确的性别,年龄,婚姻状态!\n");
    }
    if(flag==1)
        printf("恭喜你,您已经有保险\n");
    if(flag==0)
        printf("很遗憾,您还没有保险\n");
    }
    return 0;
}
int driver_insurance(char sex[],int age,char marry[])
{

    if(strcmp(marry,MARRY_) == 0)
    {
        return 1;
    }
    else if(strcmp(sex,BOY_)==0&&age>30)
    {
        return 1;
    }
    else if(strcmp(sex,GIRL_)==0&&age>25)
    {
        return 1;
    }
    else
        return 0;
}
int determine(char sex[],int age,char marry[])
{
    int a=strcmp(sex,GIRL_)!=0&&strcmp(sex,BOY_)!=0 ? 1:0;
    int b=age<0||age>110 ? 3:0;
    int c=strcmp(marry,MARRY_)!=0&&strcmp(marry,NOTMARRY_)!=0 ? 5:0;
    int sum=a+b+c;
    value(sum);
}
void value(int sum)
{
    return sum;
}

以下是运行截图:

 ok了事。

猜你喜欢

转载自blog.csdn.net/qq_58861683/article/details/127152131