解题思路:
等于后面用%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分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复