解题思路:
等于后面用%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语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:627 |
C语言训练-斐波纳契数列 (C语言代码)浏览:826 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:741 |
【回文数(二)】 (C语言代码)浏览:940 |
C语言程序设计教程(第三版)课后习题10.1 (Java代码)浏览:1492 |
这可能是一个假的冒泡法浏览:1071 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:781 |
蛇行矩阵 (C语言代码)浏览:792 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:1267 |
C语言程序设计教程(第三版)课后习题6.3 (C++代码)浏览:1067 |