jiankeabcd
jiankeabcd
采纳率73.9%
2016-04-16 11:21 阅读 2.8k

c语言 简易加减计算器

设计一个能计算加减法的简单计算器 从键盘输入数字和运算符 输入等于号时结束计算并输出结果
输出例如下
$ ./a.out
10
+
15
-
5
=
20

下面是我自己编的

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(void)
{
    char num1[80],num2[80];
    char a;
    int j,k,s=0;
    gets(num1);
    j=atoi(num1);
    k=atoi(num2);
    while(j!=EOF){
        scanf("%c",&a);
        if(a== '+'){
            gets(num2);
            s=j+k;
            j=s;
        }
        if(a== '-'){
            gets(num2);
            s=j-k;
            j=s;
        }
        if(a== '='){
            break;
        }
    }
        printf("%d",s);
    return 0;
}

这次是关于结构体的题目 要求用到gets() atoi()等
求大神看看应该怎么改

现在可以编译执行了 但是输出值不对
1+1算成1
0+1算成0

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-04-16 11:56
     if(scanf("%c",&a)== +)
    ->
    scanf("%c",&a);
    if (a == '+')
    ...
    
    点赞 评论 复制链接分享
  • qq423399099 小灸舞 2016-04-16 12:03

    1.scanf 函数是有返回值的,它的返回值可以分成三种情况
    1) 正整数,表示正确输入参数的个数。例如执行 scanf("%d %d", &a, &b);
    如果用户输入"3 4",可以正确输入,返回2(正确输入了两个变量);
    如果用户输入"3,4",可以正确输入a,无法输入b,返回1(正确输入了一个变量)。
    2) 0,表示用户的输入不匹配,无法正确输入任何值。如上例,用户如果输入",3 4",返回0。
    3) EOF,这是在stdio.h里面定义的常量(通常值为-1),表示输入流已经结束。在Windows下,用户按下CTRL+Z(会看到一个^Z字符)再按下回车(可能需要重复2次),就表示输入结束;Linux/Unix下使用CTRL+D表示输入结束。

    ps:例如减号要用单引号引起来'-'

    点赞 评论 复制链接分享

相关推荐