解题思路:
等于后面用%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 人评分
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:672 |
【明明的随机数】 (C语言代码)浏览:785 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:781 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:794 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:545 |
数字游戏 (C++代码)浏览:1183 |
C语言训练-亲密数 (C语言描述,反正怎么都能对)浏览:2165 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:535 |
一元一次方程 (C语言代码)浏览:4066 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:672 |