原题链接:简单计算机器实现
解题思路:
注意事项:
参考代码:
#include<stdio.h>
#include<ctype.h>
int m(char **p)//单指针*p里存储的是传过来的指针p的地址,双指针才是值
{
int sum=0;
while(isdigit(**p))
{
sum=sum*10+(**p-'0');
(*p)++;
}
return sum;
}
int main()
{
char a[101];
scanf("%s",a);
char operators[5]={'+','-','*','/','%'};
char *p=a;
int sum=0;
sum+=m(&p);//传过去的是p的地址
while(*p!='\0')
{
if(*p==operators[0])
{
p++;
sum+=m(&p);
}
else if(*p==operators[1])
{
p++;
sum-=m(&p);
}
else if(*p==operators[2])
{
p++;
sum*=m(&p);
}
else if(*p==operators[3])
{
p++;
sum/=m(&p);
}
else if(*p==operators[4])
{
p++;
sum%=m(&p);
}
else
{
printf("Error");
return 0;
}
}
printf("%d",sum);
return 0;
}0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复