展开

关键词

C_简单

C_简单 文章目录 C_简单 1.问题描述 2.法描述 有关想法 a.有限状态自动机 b.逆波兰表达式 法实现 1)准备阶段 2)处理字符串 3)利用token序列 4)在main函数中调用函数以实现多组样例测试 3.测试数据和测试结果 4.使用说明 关于表达式合法性的规定 1.问题描述 ---- 设简单,能够处理含有‘+’、‘-’、‘*’、‘/’ 过的运符直接出栈废弃,并在数字栈中舍弃原来的两个数字压入新的数字,即结果。 op_cnt++; break; } } } } } printf("result: %.2lf\n", num_stack[0]); 4)在main函数中调用函数以实现多组样例测试 ii)输入不合法的表达式将输出“PE\n” iii)结果为两位小数的实数,支持负数结果 iv)幂运使用符号‘^’ v)可以加减乘除和幂运,除数不能为0 关于表达式合法性的规定 输入字符仅可包含数字

29920

C之弱智

这是我一个同学编写的,但是无奈于一直出现字符c接收换行符,因此我俩就想了几个方法。 #include<stdio.h> void main() { float x,y,z; char c; printf("请输入第一个数据:"); scanf("%f",&x); printf ("请输入符号:"); //while((c=getchar())=='\n'); printf("请输入第二个数据:"); scanf("%f",&y); switch(c) { case '*':z=x*y;break; case '/':z=x/y;break; default : printf("你输入有误\n"); } printf("%.2f%c% .2f=%.2f\n",x,c,y,z); }

10220
  • 广告
    关闭

    腾讯云+社区系列公开课上线啦!

    Vite学习指南,基于腾讯云Webify部署项目。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C中缀表达式

    本文将介绍中缀表达式的详细写法,是C把中缀表达式转换为后缀表达式和C逆波兰的结合     但本篇用了更精简的写法,但是也相对的提高了代码的理解难度,在阅读时,需自己详细斟酌 开始 添加适当的头文件 c的头文件比不可少,我们这里还是添加适当的头文件和宏定义并声明函数 #include <stdio.h> #include <stdlib.h> #define MAX_LEN float cal(char *src); 中缀表达式转换为后缀表达式(操作符与操作数之间应有空格隔开) 这里是另一种方式的中缀表达式转后缀表达式,还有一种方式更容易理解一点,但是代码量相对更多,详情可见C把中缀表达式转换为后缀表达式 = -1) { *pdst = stack[top--]; *pdst++; *pdst = ' '; pdst++; } *pdst = '\0'; } } 后缀表达式 同上还有另一种比较好理解的方式 见C逆波兰 float cal(char *src) { float stack[MAX_LEN]; float opd1, opd2; int top

    39310

    C之弱智(多次运

    继上个弱智后,便想了能不能连续运。 于是就有了以下代码 #include<stdio.h> void main() { float x,z; char c=' ';//定义初始为空格 int i=1;//定义第几个数 for(;c! =1) { switch(c) { case '+':z=z+x;break; case '-':z=z-x;break; case '*':z=z*x;break; case '=':break; default : printf("你输入有误\n"); } } else z=x; printf("请输入符号:"); //while((c=

    33930

    利用c制作简易

    学了c之后,总想着能用c能制作一些简单的小工具来。而利用c来制作一款简易的是一个不错的选择,用这款可以的加、减、乘、除。 首先,打出c开始的那几行代码: 要进行两个间数字的首先要输入第一个数字,运符还有第二个数字: 接着,需要对运符进行判断,这里利用if和else if进行判断,运结果保留两位小数: 小编给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:487875004适合在校大学生,小白,想转行,想通过这个找工作的加入。 裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程 这样就可以进行简单的两位数之间的了 这样程序只能执行一次,如果想让程序进行多次只需要嵌套一层循环即可。

    2.6K10

    简易-c学习笔记

    #include <stdio.h> int main() { //简易式 int q,w,e,r,t; for(int q =0;q<5;q++) { printf("请输入一个数字 :"); scanf("%d",&w); printf("请再输入一个数字:"); scanf("%d",&t); printf("请输入方式,1=+,2=-,3=*,4=/:

    42060

    C实现(指针+函数)

    根据输入字符对整数a和b做相应的术运,如输入+,程序就给出a与b之和,输入-,就给出a和b之差,输入*,就给出a和b的乘积,输入/,就给出a与b的商。若输入其他字符,则提示输入错误。 x, int y); int mult(int x, int y); int divi(int x, int y); int main(){ int a,b,result; char c; scanf("%d%c%d",&a,&c,&b); switch(c){ case '+':result=calc(a,b,add);break; case calc(a,b,mult);break; case '/':result=calc(a,b,divi);break; default:printf("系统不能识别的运

    46520

    C实现简单(VC6.0环境)

    今天给大家带来一个C实现简单(VC6.0环境)的程序源码,好了,咱们话不多说,直接上源码—— #include <stdio.h> #include <math.h> #include <stdlib.h Number, Result; //给加减乘除定义的变量 int No; //选项的定义变量 double a, b, c, //界面 printf ("┏ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┅ ┓\n"); printf ("┇请选择你要的方法 { //求一元二次方程的解的代码 printf("请输入一元一次方程的a,b,c三个数 :"); scanf("%lf%lf%lf",&a,&b,&c); Rad = b*b - 4*a*c;

    2.7K70

    CC++混合开发简单版本

    #####5.代码片段 主要的方法执行在C++的main文件当中 #include <iostream> using namespace std; #include "test.h" int main endl; cin >> b; cout << "结果是" << divide(a,b) << endl; getchar(); getchar(); return 0; } #####6.用C编写一个简单的加减乘除的方法 = 0) { return a / b; } else { return 0; } } #####7.编写C的头文件 #pragma once //pragma once是属于定义整个文件的形式来防止改文件被重复引入 ,当需求上需要部分不被重复的时候,就需要我们使用ifndef 和ifdef的组合 //使用#ifdef来判断是否是C++的编译来进行编译的,用于判断该方法是否需要使用C的形式来进行编译 #ifdef __cplusplus //extern "C" 是一个固定写法,表示该修饰的方法将使用C的方式来进行编译 extern "C" { #endif // __cplusplus int sum(

    28130

    面向对象的简单C#

    采用了在项目里面添加类库的方法,将类放在一个类库中 主函数实例化类,然后调用方法。 System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 下午第四题面向对象的 result);                 }                 else                     Console.WriteLine("请输入正确的运符 ;             }         }         ///

            /// 将运符和数字传入的方法         /// </summary         public override int Compute()         {             return Num1 +Num2;         }     } }

    50410

    C入门教程之简单的

    19世纪之前 早期的为纯手动式,如盘和筹与尺等。盘通常是以滑动的珠子制成。在西方,盘在印度阿拉伯数字流行前使用了数个世纪,且在近代中国的记账与商务上仍广泛使用。 后来出现机械。 19世纪 巴贝奇将工具的概念更往前推,试图创建第一个可编程序,但他建造的机太重了,因而无法操作。 20世纪 20世纪70年代开始,微处理技术被吸纳进制程,最初的微处理是Intel于1971年为日本名为Busicom的公司生产的,1972年惠普推出第一款掌上科学HP 可见,是一个重要的工具,下面我来分享如何使用C编写一个简单的整数类型的。 01 核心思路 利用C中的 scanf 输入函数实现数字和运符号的输入,利用 switch 句 判断用户输入的运符号(加减乘除),然后加减乘除四种情况分别利用 switch 中的 case

    24230

    C逆波兰表达式(后缀表达式)

    刚开始学习c时,我们都学过输入一个数在输入一个操作数在输入要进行的方式,在输入另一个操作数,然后通过内置的+ - / 以及内置头文件 *math.h等操作进行 但是我们可不可以直接输入我们熟悉的式才得出结果呢 ,答案是肯定的,我博客上一篇介绍了C把中缀表达式转换为后缀表达式有兴趣的读者可以去看看,有了上篇的知识,在加上本篇的内容就可以很容易做出一个中缀表达式了有兴趣的读者可以看完本文去尝试一下,对自己的能力也是一种提升 double d, e; char str[100]; int i = 0; initStack(&s); printf("请按逆波兰表达式输入机数据,数据与运符中间用空格隔开,以#结束 , &c); } Pop(&s, &d); printf("最终的结果为%lf\n", d); return 0; } 本人用的是vs2015编译,所以文中的scanf用了更安全的scanf_s , 如有引用 请自行替换成和自己的编译想匹配的函数 代码依然很简单,都是一些简单的指针操作,如果看不懂,请复习c的指针部分(其实指针搞清楚地址与值得对应关系就可以了) 函数形参 主函数中参数使用

    97710

    C编写一个(附全源代码)

    这个其实是我老师布置的一个c大作业,捉摸着搞了那么久的东西不能浪费了吧,于是我分享下我的代码和大概思路 给个关注点个赞,后续我会分享更多我们学生党的作业问题 白嫖党们先看代码,我就先上上全代码 前: 为了达到目的,首先自学了栈:按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。 -1,结束(栈指针减1,指向栈顶) (1)函数功能介绍及介绍:能够实现连续的运,混合运,基本上可以等同于手机上。 如果能在visualc++运行,稍微调整一下,可以利用自带的功能设置一个界面,这样就可以完成跟手机自带那种相同了。 (二)设方案 根据自学所得栈进行数据和符号的存储再输出,先设立单独的数据栈符号栈,我们以top=-1为标准,判断其是否为空栈,当然也用到了学过的struct来构建栈,先把字符存进去再说,在里面我们要进行运

    46010

    cstruct结构体大小

    char a放在结构体的起始地址; short b占2个字节,2小于实际对齐字节8,故b的起始地址相对于a的起始地址的偏移量须为2的整数倍个字节; int c占4个字节,4小于实际对齐字节8,故c 起始地址相对于 8与实际对齐字节8相等,故d的起始地址相对于a的起始地址的偏移量须为8的整数倍个字节; 所以nums所占空间如下:    1(a)+1(浪费的空间,由b的起始地址决定这1字节必须腾出)+2(b)+4(c) 小于实际对齐字节8,所以这13个char型变量可以直接挨着double d后面放(最后结果看起来也就相当于整个数组挨着double d放置);所以总的空间情况是:1(a)+1(浪费空间)+2(b)+4(c) arr)=29;但29并不满足上面三步走的最后一步:“整个结构体的大小必须是实际对齐单位的整数倍”,所以29+5(浪费空间)=32,所以最后nums的空间情况是1(a)+1(浪费空间)+2(b)+4(c)

    19841

    &Python解释

    [TOC] 1.的分类 ? 1.1机 由于机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机指令,全部机指令的集合构成的机属于低级 1.2汇编 汇编的实质和机是相同的 1.3高级 高级包含c,c++,java,php,python,go,和汇编相比,高级对程序员更加友好,开发效率更高。 高级所编制的程序是不能被机直接识别的,必须经过转换才能被执行! 2.执行速度快,因为源代码已经翻译成了机可直接理解的机 3.生成的机码文件是不能查看和修改的,所以安全性较高。

    24110

    C | 术运

    “要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C学习上也一并受用。 在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C小白进阶到高手,需要经历的是日积月累的学习。 那么如何学习呢?当然是每天都练习一道C题目!! ? 作者 闫小林 白天搬砖,晚上做梦。 例97:学习C术运符。  解题思路:术运符按操作数个数可分为一元运符和二元运符。一元运符的优先级一般高于二元运符。一元运符:+(正号)、-(负号)、++(增1)、--(减1)。 二元运符:+(求和)、-(求差)、*(求积)、/(求商)、%(求余)。 C源代码演示: #include <stdio.h>//头文件 int main()//主函数 {   int i,j,k;//定义整型变量   float num1,num2;//定义浮点型变量

    23862

    C循环结构π的值

    代码: #include <stdio.h> int main(){ //π的值 int i; int z; double f;

    92220

    使用c3阶行列式

    很多学线性代数的小伙伴在3阶行列式的时候总会感到很麻烦,数据量大而且容易看错。 我们在知道方法后就可以使用c写出3阶行列式的代码: #include int main() { while(true) { int i,a[3][3],j,sum1,sum2,sum; for 1]*a[1][0]+a[2][1]*a[1][2]*a[0][0]+a[0][2]*a[1][1]*a[2][0]; sum=sum1-sum2; printf("%d",sum); } } 在进行的时候只需要将输入行列式就可以直接出结果 : 这样就可以很方便很快捷3阶行列式了。 小编给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:870963251!适合在校大学生,小白,想转行,想通过这个找工作的加入。裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程

    88200

    寒假备战机二级C

    我猜,肯定还有同学为自己制订了学习划。报名了3月份机二级C的同学,一定不要太放松了。 在寒假这段时间,我们准备整理一份C知识点,一个个章节的带领大家学习。一定要跟上了,别掉队。 在开始这轮学习前,我们先来测试下自己C水平吧,以下知识点,你已经掌握的有多少? 1)程序结构是三种: 顺序结构 、选择结构(分支结构)、循环结构。 3)机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是 他的地址. 4)bit是位 是指为0 或者1。 byte是指字节, 一个字节 = 八个位. 1、编译预处理不是C的一部分,不占运行时间,不要加分号。C编译的程序称为源程序,它以ASCII数值存放在文本文件中。 3、每个C程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch句。

    22110

    相关产品

    • 云服务器

      云服务器

      云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。 腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券