解题思路:    

        等于后面用%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.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论