软件工程221班金航


私信TA

用户名:uq_14600592801

访问量:1209

签 名:

这个人不懒,这不是签名吗~

等  级
排  名 9489
经  验 1150
参赛次数 0
文章发表 11
年  龄 19
在职情况 学生
学  校 广西科技师范学院
专  业 软件工程

  自我简介:

从不熬夜只通宵

解题思路:    

        等于后面用%s数组接收,那么数组第0个可以用来判断是不是?如果不是就继续往下判断正确

如果不是’?‘怎么变成整型?,用一个循环遍历数组,直到’\0‘结束,可以判断有几位数

字符9怎么变成整型的9?减去字符’0‘就可以了,然后根据有几位数,加在一起就是整型的数了(下面代码关于这处可以用一个循环简化,有兴趣可以试试)
后面就很简单了,判断加减,然后判断a和b运算后和刚刚转换的整型值是否相等,相等就正确计1,否则结束本次循环continue


注意事项:

                100以内加减法是有可能超出100的,我开始就犯傻了,错了好多次采想到QAQ

参考代码:

#include"stdio.h"


int _num(char num[])        //转换整型值,注意因为result数组我定义的是char类型,不需要用指针,这里会自动算出宽度

{

    int i=0,con=0,hun=0;

    for(;i<3;i++)                 //判断有几位数

    {

        if(num[i]!='\0') con++;

        else break;

    }

    if(con==1) return num[0]-'0';

    if(con==2)

    {

        i=num[0]-'0';

        con=num[1]-'0';

        con+=i*10;

        return con;

    }

    if(con==3)

    {

        i=num[0]-'0';

        con=num[1]-'0';

    hun=num[2]-'0';

    hun+=con*10+i*100;

    return hun;

    }

}

int main()

{

char result[3];

char opera;

    int a=0,b=0,right=0,res=0;

    while(scanf("%d%c%d=%s",&a,&opera,&b,&result)!=EOF)

    {

        if(result[0]=='?'||result[0]=='-') continue;

        res=_num(result);    //调用上面转换整型的函数

        if(opera=='+')        //判断加减运算

        if(a+b==res) 

    {

        right++;

        continue;

    }

        else continue;

        else if((a-b)==res) 

                {

                    right++;

                    continue;

                }

    }       

  printf("%d\n",right);

}


 

0.0分

2 人评分

  评论区

  • «
  • »