从键盘上输入一个运算符字符串,要求进行计算。(完成+,-,*,) 譬如从键盘上输入字符串1+2,显示结果为3,

从键盘上输入一个运算符字符串,要求进行计算。(完成+,-,*,) 譬如从键盘上输入字符串1+2,显示结果为3,,第1张

#include <stringh>
int _tmain(int argc, _TCHAR argv[])
{

char string[10];
char operates[] = {'+','-','','/'};
int i, j, temp;
int num1 = 0, num2 = 0, result;
char operate = '0';
printf("Hello, input string:\r\n");
scanf("%s", string);
for (i = 0; i < strlen(string); i++)
{
for (j = 0; j < sizeof(operates); j++)
{
if (string[i] == operates[j])
{
operate = operates[j];
break;;
}

}
if (operate != '0')
{
for (temp = 0; temp < i; temp++)
{
num1 = num1 10 + string[temp] - '0';
}
for (temp = i+1; temp < strlen(string); temp++)
{
num2= num2 10 + string[temp] - '0';
}
break;
}
}
switch (operate)
{
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '':
result = num1 num2;
break;
case '/':
result = num1 / num2;
break;
}
printf("%s = %d\r\n", string, result);
return 0;
}

///////////
这个没有对输入进行检查, 你如果想更完善的话,可以加上对输入进行检查。
输入
123+2
23
输出
125
6

1、乘号 就是星号键,间接运算符 可以用()。
2、常用的运算符号及优先级别:
1级(左结合)
( ) 圆括号;[ ]下标运算符;->指向结构体成员运算符; 结构体成员运算符。
2级(右结合)
“ ! ”逻辑非运算符;“ ~ ”按位取反运算符;“ ++ ”前缀增量运算符;“ -- ”前缀减量运算符;
“ - ”负号运算符;(类型)类型转换运算符;“ ”指针运算符;“ & ”地址运算符;
“sizeof ” 长度运算符。
3级(左结合)
“ ” 乘法运算符;“ / ” 除法运算符;“ % ” 取余运算符。
4级(左结合)
“ + ”加法运算符;“ - ”减法运算符。
5级(左结合)
<< 左移运算符;>> 右移运算符。
6级(左结合)
、>=关系运算符。
7级(左结合)
“ == ”等于运算符;“ != ”不等于运算符。
8级(左结合)
“ & ”按位与运算符。
9级(左结合)
“ ∧ ”按位异或运算符。
10级(左结合)
“ | ”按位或运算符。
11级(左结合)
“&&”逻辑与运算符。
12级(左结合)
“ || ”逻辑或运算符。
13级(右结合)
:条件运算符。
14级(右结合)
=、 +=、 -=、 =、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=赋值运算符。
15级(左结合)
“,” 逗号运算符。

_这个其实不是符号,是个中文汉字,读kuài,大家想要的是《》这个书名号的符号,有很多小伙伴还不知道怎么在电脑上打出来这个符号,下面就来教一教大家,简单两步就能搞定哦!一起来看看吧。
这个符号电脑怎么打共需要两步,可以通过键盘快捷键实现,以下为具体 *** 作步骤。
1、在中文输入法下,按住shift键不松。
2、同时按住如图所示的,键,即可打出《符号。

python支持:数学运算符、逻辑运算符、比较运算符、赋值运算符、(位运算符)

其中:+、-、、/,与数学中的加减乘除一样
整除(//),两数相除结果只取整数部分
取余(%),两数相除取余数
幂运算(),x y 即为(求x的y次方)
可用于开方。如下:

注意:运算符的运算不一定非得是数据,也可是存数据的变量

所有比较运算符的值都是布尔值(False/True)

补充:is的使用

一个变量有三要素,分别是:类型(变量中存储的数据的类型)、值(变量中存储的数据)、
地址(变量存储的真正内容,数据的地址)

(==)和is的区别:

注意:变量中若是存储的数据为数字和字符串,则地址相同
(变量中存储的数据为数字和字符串)示例:

与比较运算符的运算对象和值都是一样的,值都为布尔值

应用:要求同时满足多个条件的时候就用逻辑与运算
练习:能否获得奖学金条件,成绩90分以上以及测评分不能低于95

False or False --> False
运算技巧:只要存在True,则结果为True

应用:要求多个条件只要有一个条件满足就使用逻辑或运算
练习:是否降班条件,考试分数低于60,或者不在教室

not False = True
not True = False

是否漂亮,评分大于5则为漂亮

所有的赋值运算符,要求运算符的左边必须是变量;右边是有结果的(值)

其他赋值运算符中除(=)外,运算方法与以上一致

数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
优先级高的先算,优先级低的后算。如果有(),先算()里面的
数学运算符中的优先级: > ,/,%,// > +,-

1int:包含所有的整数,支持十进制、二进制、八进制、十六进制

2float:包含所有的小数,支持科学计数法

3布尔(bool)类型:值只有True和False,数学运算中 True == 1 ,False == 0

4复数(complex)型:实部 + 虚部(通常用j来表示虚部,j前面的数字不能省略)

1,认识字符串:
通过单引号或者双引号括起来的字符集(文本)就是字符串
什么是字符 :python中只有字符的概念,没有字符的类型,如果要表示一个字符,用一个长度是1的'字符串'来表示
字符串是不可变的,但是有序--》(长度不可变,字符内容不可变,有序指的是每个字符在字符串中的位置是不变的)

2字符串类型(str):str是python自己提供的一种容器型数据类型
容器型数据类型的特点:一个字符串中可以存储多个字符

3字符串中的字符

注意: 1没有阻止转义时,一个转义字符的长度是1
2可以在字符串的最前面加r/R来阻止转义(阻止字符串中的所有转义字符转义)

如下:

例如:

4字符编码:字符的编码就是为了把字符存到计算机里面,给每个字符一个固定的编号(数字组成)
计算机在存储数据的时候只能存数字数据,而且存的是数字的二进制的补码

数字存储:列如 10—> 转换成二进制 -> 求补码(存储)
目前采用的两种编码方式:ASCII码表(128个字符)和Unicode编码表(相当于ASCII码表的扩充,
采用两个字节对字符进行编码,包含世界上所有的语言和符号,又称万国码)。python采用的是Unicode编码表

小写字母的编码范围(a-z):97 - 122
大写字母的编码范围(A-Z):65 - 90
中文编码范围:0x4e00 - 0x9fa5

函数应用:

1、一个字符串里面包含运算符,要转成正常运算的运算符,可以用 宏指令。相当于直接执行语句。宏指令在不同语言中执行方式不同的。
2、例程:

//基本的堆栈思想
#include<stdioh>
#include<stdlibh>
typedef struct
{
    int  base;
    int  top;
    int size;
} stack_i;
void initStack_I(stack_i  int_sta)
{
    int_sta->base = (int )malloc(sizeof(int)  100);
    int_sta->top  = int_sta->base;
    int_sta->size = 100;
}
void deleteStack_I(stack_i  int_sta)
{
    free(int_sta->base);
}
void push_I(stack_i  int_sta, int i)
{
    if(int_sta->top - int_sta->base >= int_sta->size)
    {
        return;
    }
    (int_sta->top++) = i;
}
void pop_I(stack_i  int_sta, int  i)
{
    if(int_sta->top == int_sta->base)
    {
        return;
    }
 
    i = (--int_sta->top);
}
int main(void)
{
    int  i;
    int  temp, temp1;
    int  sum = 0;
    char c;             //当前字符
    char lastc = 0;   //上一个字符
    stack_i IS;
    initStack_I(&IS);
    scanf("%d", &i); //接收第一个数字
    push_I(&IS, i);  //压栈
    while(1)
    {
        scanf("%c", &c); //接收第一个字符
        if(c == '\n') //换行符就退出
        {
            break;
        }
        switch(c)
        {
        case '+':
            if(lastc == '+')  //上次也是一个加号的话
            {
                pop_I(&IS, &temp);  //d出上一个数字
                pop_I(&IS, &temp1); //d出上一个数字
                sum = temp + temp1; //加法计算
                push_I(&IS, sum);   //新的结果压栈
            }
            scanf("%d", &i);   //接收一个数字进来
            push_I(&IS, i);     //压栈
            lastc = c;
            break;
        case '':
            scanf("%d", &i);   //接收一个数字进来
            pop_I(&IS, &temp);  //d出上一个数字
            sum = i  temp;  //乘法计算
            push_I(&IS, sum);   //新的结果压栈
            break;
        }
    }
    temp1 = 0;
    pop_I(&IS, &temp);
    pop_I(&IS, &temp1);
    sum = temp + temp1;
    printf("%d\n", sum);
    deleteStack_I(&IS);
    return 0;
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12895255.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存