jin6zheng3
jin6zheng3
采纳率0%
2019-04-22 15:14 阅读 1.5k

用c语言,实现多个数的四则运算,求大神帮帮忙。

1,如何判断优先级来进行多个数的四则运算。。
列如 2+2+2/2=5
2,使用printf scanf switch 和if语句。想了好久了。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • qq_40435680 _小丑_ 2019-04-22 15:57

    #include
    #include
    #include
    #include
    int scan()
    {
    char s[100];
    int i,t,z=0;
    do
    {
    z=0;
    gets(s);
    for(i=0;s[i]!='\0';i++)
    if(s[i]<'0' || s[i]>'9') break;
    if(i>=strlen(s))
    for(t=0;s[t]!='\0';t++)
    z=z*10+((int)s[t]-48);
    else
    printf("您的输入有误,请重新输入");
    }
    while(i<strlen(s));
    return(z);
    }
    int x=1,y=1,choice=0,sum=0,right=0,z=0,answer;
    float precent;
    char fuhao;
    void suiji()
    {
    srand(time(NULL));
    x=rand()%100+1;
    y=rand()%100+1;
    }
    void choose()
    {
    int yunsuan(int,int,int);
    if(sum==0) precent=0.0;
    else precent=(float)right/sum;
    printf("\n如需进行加减乘除运算测试,请分别输入1、2、3、4\n");
    printf("如需退出请输入5\n");
    choice=scan();
    switch(choice)
    {
    case 1:printf("加法运算测试系统,如需退出请输入9999\n");fuhao='+';break;
    case 2:printf("减法运算测试系统,如需退出请输入9999\n");fuhao='-';break;
    case 3:printf("乘法运算测试系统,如需退出请输入9999\n");fuhao='*';break;
    case 4:printf("除法运算测试系统,如需退出请输入9999\n");fuhao='/';break;
    case 5:printf("本次测试愉快,欢迎下次再来测试\n");
    printf("本次共做%d道题,其中%d道正确,正确率为%f\n",sum,right,precent);
    break;
    default:printf("您的输入有误,请重新输入\n");choose();
    }
    }
    int ans(int x,int y,int choice)
    {
    switch(choice)
    {
    case 1:z=x+y;break;
    case 2:z=x-y;break;
    case 3:z=x*y;break;
    case 4:z=x/y;break;
    }
    return(z);
    }
    void yunsuan()
    {
    suiji();
    printf("%d%c%d=",x,fuhao,y);
    z=ans(x,y,choice);
    answer=scan();
    if(z==answer)
    {
    printf("正确\n");
    right++;sum++;
    yunsuan();
    }
    else if(answer==9999) choose();
    else
    {
    printf("不正确, 正确答案为%5d\n",z);
    sum++;
    yunsuan();
    }
    }
    void main()
    {
    printf("欢迎来到四则运算测试系统\n");
    choose();
    while(choice!=5)
    yunsuan();
    }

    点赞 评论 复制链接分享

相关推荐