c语言 简易加减计算器

问题描述

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

解决方案

 if(scanf("%c",&a)== +)
->
scanf("%c",&a);
if (a == '+')
...

解决方案二:

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:例如减号要用单引号引起来'-'

解决方案三:

C语言简易计算器
C语言控制台简易计算器

时间: 2024-11-08 22:22:49

c语言 简易加减计算器的相关文章

c语言-C语言连续加减问题sign=-sign

问题描述 C语言连续加减问题sign=-sign 题目有一个数组data有100个元素,求data[0]-data[1]+data[2]-data[3]+...-data[99].我的部分出错程序是: 运行结果是-1.QNAN00000000无效植. 若用标记符号sign=-sign ,其程序是: 运行结果则是正确的. 请问为什么我那样写的程序是错误的,那样子写不也是data[0]-data[1]+data[2]-data[3]+...吗? 学C语言没多久,所以问的问题有些简单,烦请各位大神给指

c语言简易计算器小白问题

问题描述 c语言简易计算器小白问题 #include float fun1(float a,float b) { float c; c=a+b; return c; } float fun2(float a,float b) { float c; c=a-b; return c; } float fun3(float a,float b) { float c; c=a*b; return c; } float fun4(float a,float b) { float c; c=a/b; ret

C语言实现大整数加减运算详解_C 语言

前言     我们知道,在数学中,数值的大小是没有上限的,但是在计算机中,由于字长的限制,计算机所能表示的范围是有限的,当我们对比较小的数进行运算时,如:1234+5678,这样的数值并没有超出计算机的表示范围,所以可以运算.但是当我们在实际的应用中进行大量的数据处理时,会发现参与运算的数往往超过计算机的基本数据类型的表示范围,比如说,在天文学上,如果一个星球距离我们为100万光年,那么我们将其化简为公里,或者是米的时候,我们会发现这是一个很大的数.这样计算机将无法对其进行直接计算.     可

线性表 长整数运算-C++语言,利用线性表实现100位长整数的加减乘运算

问题描述 C++语言,利用线性表实现100位长整数的加减乘运算 要求输入和输出是每4位一组,加法和减法用不同的程序实现,并且要考虑输入数据的符号,且要用线性表建立数

c语言-我写的是两个数的加减运算,以字符串数组形式保存

问题描述 我写的是两个数的加减运算,以字符串数组形式保存 #include #include void main(void) { char str1[30]={0}; char str2[30]={0}; char str3[30]={0}; printf("Please input the first number:"); gets(str1); printf("Please input the second number:"); gets(str3); add(

C#编的加减和循环运算 求代码 满意的话马上结贴给分

问题描述 我现在在做毕设,自己弄了个算法,就是简单的加减运算和循环运算,不过参加运算的变量有好几个是取自数据库的.我本人是之前完全没接触过程序语言,突然要编这么个东西出来一下就懵了.求问大家手头又没有类似的例子,我可以参考一下,非常非常感谢哪~ 解决方案 解决方案二:问题没描述清楚.解决方案三:那我在仔细描述下吧~就是table1种的no1字段乘以table中的no2字段,其中的数据是对应项相乘得到某个数值.两个表是通过共有的no3字段关联的.最后这个数值跟table3中的某个值进行比较,取最接

ASP 日期的加减运算实现代码_应用技巧

举个例子来说,要查找出2007-10-12至2007-10-31之间在网站上注册的会员,选择好日期后,点击"查询"按钮,发现2007-10-31注册的会员的信息根本没有显示出来,试验了几次结果都是一样.调试程序发现,原来是在SQL语句这里出现了问题. SQL语句如下:SELECT * FROM userinfo WHERE regtime >= '2007-10-12' AND regtime <= '2007-10-31'.初看上去这条SQL语句没有错误,可是对照数据库中

ASP 日期的加减运算实现代码

举个例子来说,要查找出2007-10-12至2007-10-31之间在网站上注册的会员,选择好日期后,点击"查询"按钮,发现2007-10-31注册的会员的信息根本没有显示出来,试验了几次结果都是一样.调试程序发现,原来是在SQL语句这里出现了问题. SQL语句如下:SELECT * FROM userinfo WHERE regtime >= '2007-10-12' AND regtime <= '2007-10-31'.初看上去这条SQL语句没有错误,可是对照数据库中

1602显示时钟可以调节时分秒(加减)

#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #define uchar unsigned char #define uint unsigned int static uchar count,j,s1num; char shi,fen,miao; sbit RS = P2^4; //Pin4 sbit RW = P2^5; //Pin5 sbit E = P2^6; //Pin6 sbit s1=P3^0; //矩阵键盘分离出独立键盘