pta 7-5(简单计算器)(10分)
程序员文章站
2024-03-05 18:14:31
...
这里的代码都是博主在pta测试过的,一定能过,建议没有敲出来的小伙伴看完代码之后,可以看一下解析。
博主用到的编译器是dev,与vs稍有不同,使用vs的小伙伴可以小改动一下。
ok,先代码,后讲解。
#include<stdio.h>
int main()
{
int a,b;
char c;
scanf("%d",&a);
while(scanf("%c",&c))
{
switch(c)
{
case '+':scanf("%d",&b);a+=b;break;
case '-':scanf("%d",&b);a-=b;break;
case '*':scanf("%d",&b);a*=b;break;
case('/'):scanf("%d",&b);
if(b==0)
printf("ERROR");return 0;
else
{a/=b;break;}
case('='):printf("%d",a);return 0;
default:printf("ERROR");return 0;
}
}
}
- 考虑到开头的第一个一定是数字且无其他特殊情况,因此第一个数字提前输入,不再参与整个过程。
- 这里从第二个位置开始我们便要开始输入符号了,因此我们引入字符c,同时这里的思想引用scanf的返回值,scanf的返回值是输入的数量因此我们一旦停止输入,while便没有循环条件,也就是停止执行,这里可以用很多的其他方法代替
- 在考虑到其他的情况,到‘=’号时停止,输入错误时,停止,当分母为0时停止,这样一个简单小程序便完成了。
注意:
小伙伴们不能使用强制转化的思想,不能将输入的字符转化为整形进行输出,因为转化过来的变量已经不是原先的变量了。
如下:
我们都知道网上这种平台很“粪”因此,一旦小伙伴们有一点的输出错误哪怕是多了一个空格,都不行 ???? 因此小伙伴们在写pta时,一定一定一定要注意输出格式!!!!