jin6zheng3 2019-04-22 15:14 采纳率: 0%
浏览 1885

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

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

  • 写回答

1条回答 默认 最新

  • _小丑_ 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();
    }

    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗