C语言程序-《计算器程序》复制进C程序就可以用

合集下载

C语言计算器源代码

C语言计算器源代码

C语言计算器源代码以下是一个简单的C语言计算器源代码,可以实现基本的四则运算。

```c#include <stdio.h>int maichar operator;double num1, num2;double result;printf("欢迎使用简单计算器!\n");printf("请输入运算符(+, -, *, /): ");scanf("%c", &operator);printf("请输入第一个数字: ");scanf("%lf", &num1);printf("请输入第二个数字: ");scanf("%lf", &num2);switch (operator)case '+':result = num1 + num2;printf("结果: %.2lf\n", result);break;case '-':result = num1 - num2;printf("结果: %.2lf\n", result); break;case '*':result = num1 * num2;printf("结果: %.2lf\n", result); break;case '/':if (num2 != 0)result = num1 / num2;printf("结果: %.2lf\n", result); } elseprintf("除数不能为0\n");}break;default:printf("无效的运算符\n");}return 0;```运行代码后,程序会首先打印欢迎信息,并要求用户输入运算符、第一个数字和第二个数字。

STC89c52单片机 计算器C语言程序

STC89c52单片机 计算器C语言程序

STC89c52单片机计算器C语言程序STC89C52|/***************89C51单片机【计算器】C语言程序******************//**************** P2位选P0段选时钟12MHZ *********************/#include<reg52.h> /*包含的头文件*/#define uchar unsigned char /* 宏定义*/#define uint unsigned intuchar Led[17] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f,0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71, 0x00}; /* 数码管段选*/long float Number[]={0,0,0,0}; /* 数码管显示位控制寄存器*/uchar A[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};long int D[] = {0,0,0,0,0,0,0,0}; //数码管显示内容寄存器uchar code C[] = {0x0, 0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F}; /* 数码管位选*//* 列扫描控制LED 1位2位3位4位5位6位7位8位*/uchar k=16; /* 按键对外控制*/uchar b; /* 按键【+】【-】【*】【/】对外的控制*/long float Out_put; /* 定义变量【Out_put】作为结果*/uchar e=0; /* 数字的位存储递进的控制*/uchar g=0; /* 运算方式的控制变量*/uchar L=0; /* 运算方式的控制变量*/uchar g1=0; /* 运算方式的控制变量*/uchar g2=0; /* 运算方式的控制变量*/uchar g3=0; /* 运算方式的控制变量*/uchar g4=0; /* 运算方式的控制变量*/char j=-1; /* 与Number[]数组连用*/uchar m=0; /* 按键【=】的控制变量*/uchar n=0; /* 按键【.】的控制变量*/uchar x=0; /* 小数点个数的记录变量*/uchar xo=0; /* 控制开始计数小数点的变量*/long int result;void Delay(uint o) /* 延时函数delay() 的定义*/{uint i,j;for(i = 0; i < o; i++){for(j = 0; j < 121; j++) {;}}}void show(long float Out_put){ uchar r;uchar k;long int q,p;uchar s=0;uchar i;long int temp;temp=Out_put ;if( (Out_put-temp)!=0) {result=Out_put*10000; r=4;}else { result=Out_put; r=0; }p=result;if(m==1){if(result<0){ result=-result; p=result; q=result; for(i=1;i<=8;i++) { q=q/10; if(q==0) {k=i;i=9; } } P0=0x40; P2=C[8-k];Delay(1); } //负号的显示P0=0x80; P2=C[r]; Delay(1); P0=0x00;result=p;P0=Led[result%10]; P2=C[8]; result=result/10; Delay(1);if( (result%10==0)&&(result%100==0)&&(result%1000==0)&&(result%10000==0)&&(r esult%100000==0)&&(result%1000000==0) ) {P0=0x00;}else {P0=Led[result%10]; P2=C[7]; result=result/10; Delay(1);}if( (result%10==0)&&(result%100==0)&&(result%1000==0)&&(result%10000==0)&&(result%100000==0) ) {P0=0x00;}else {P0=Led[result%10]; P2=C[6]; result=result/10; Delay(1);}if( (result%10==0)&&(result%100==0)&&(result%1000==0)&&(result%10000==0) ) {P0=0x00;}else {P0=Led[result%10]; P2=C[5]; result=result/10; Delay(1);}if( (result%10==0)&&(result%100==0)&&(result%1000==0) ) {P0=0x00;}else {P0=Led[result%10]; P2=C[4]; result=result/10; Delay(1);}if( (result%10==0)&&(result%100==0) ) {P0=0x00;}else {P0=Led[result%10]; P2=C[3]; result=result/10; Delay(1);}if( (result%10==0) ) {P0=0x00;}else {P0=Led[result%10]; P2=C[2]; result=result/10; Delay(1);}if(result==0) {P0=0x00;}else {P0=Led[result%10]; P2=C[1]; result=result/10; Delay(1);}}}void In_put() // 输入函数输入小数加小数点{uchar i;if(k>=0&&k<=9)switch(e){case 8: D[7]=D[6];A[7]=A[6]; //用来存放数值case 7: D[6]=D[5];A[6]=A[5];case 6: D[5]=D[4];A[5]=A[4];case 5: D[4]=D[3];A[4]=A[3];case 4: D[3]=D[2];A[3]=A[2];case 3: D[2]=D[1];A[2]=A[1];case 2: D[1]=D[0];A[1]=A[0];case 1: if(n==0) { D[0]=k; A[0]=Led[k]; if(xo==1) x++; }if(n==1) { A[0]=Led[k]|0x80; xo=1; n=0;}}if(k>=11&&k<=15&&b==1){ switch(k){case 11: g1++;g++;if(g2==1) L=1; if(g3==1) L=2; if(g4==1) L=3;break; // +case 12: g2++;g++;if(g1==1) L=4; if(g3==1) L=5; if(g4==1) L=6;break; // -case 13: g3++;g++;if(g1==1) L=7; if(g2==1) L=8; if(g4==1) L=9;break; // *case 14: g4++;g++;if(g1==1) L=10;if(g2==1) L=11;if(g3==1) L=12;break; // /}j++;Number[j]=10000000*D[7]+1000000*D[6]+100000*D[5]+10000*D[4]+1000*D[3]+100*D [2]+10*D[1]+D[0];for(i=1;i<=x;i++) {Number[j]=(float)Number[j]/10;}x=0;for(i=0;i<=7;i++) // 数据存储器清零D[i]=0;for(i=0;i<=8;i++) // 数据显示清零{A[i]=0x00;}b=0;e=0;xo=0;}}void Key_scan() // 键盘扫描函数Key_scan(){unsigned char X,Y,Z;P3 = 0xff;P3 = 0x0f; //先对P2置数行扫描if(P3!=0x0f) //判断是否有键按下{Delay(20); //延时10ms,软件去干扰if(P3!=0x0f) //确认按键按下;{X=P3; //保存行扫描时有键按下时状态P3=0xf0; //列扫描Y=P3; //保存列扫描时有键按下时状态Z=X|Y; //取出键值while(P3!=0xf0); // 按键防止抖动switch ( Z ) //判断键值(那一个键按下){case 0xe7: k=0; e++; In_put(); break; //数字【0】case 0xd7: k=1; e++; In_put(); break; //数字【1】case 0xdb: k=2; e++; In_put(); break; //数字【2】case 0xdd: k=3; e++; In_put(); break; //数字【3】case 0xb7: k=4; e++; In_put(); break; //数字【4】case 0xbb: k=5; e++; In_put(); break; //数字【5】case 0xbd: k=6; e++; In_put(); break; //数字【6】case 0x77: k=7; e++; In_put(); break; //数字【7】case 0x7b: k=8; e++; In_put(); break; //数字【8】case 0x7d: k=9; e++; In_put(); break; //数字【9】case 0xeb: n=1; In_put(); break; //小数点【 .】case 0x7e: k=11;b=1; In_put(); break; //字符【B +】case 0xbe: k=12;b=1; In_put(); break; //字符【C -】case 0xde: k=13;b=1; In_put(); break; //字符【D *】case 0xee: k=14;b=1; In_put(); break; //字符【E /】case 0xed: k=15;m=1;b=1;In_put();break; //字符【F =】}}}}void Yun_suan(){if(g1==1&&g==1) Out_put=Number[0]+Number[1];if(g2==1&&g==1) Out_put=Number[0]-Number[1];if(g3==1&&g==1) Out_put=Number[0]*Number[1];if(g4==1&&g==1) Out_put=Number[0]/Number[1];if(g1==2&&g==2) Out_put=Number[0]+Number[1]+Number[2]; if(g2==2&&g==2) Out_put=Number[0]-Number[1]-Number[2]; if(g3==2&&g==2) Out_put=Number[0]*Number[1]*Number[2]; if(g4==2&&g==2) Out_put=Number[0]/Number[1]/Number[2];if(L==1) Out_put=Number[0]-Number[1]+Number[2];if(L==2) Out_put=Number[0]*Number[1]+Number[2];if(L==3) Out_put=Number[0]/Number[1]+Number[2];if(L==4) Out_put=Number[0]+Number[1]-Number[2];if(L==5) Out_put=Number[0]*Number[1]-Number[2];if(L==6) Out_put=Number[0]/Number[1]-Number[2]; if(L==7) Out_put=Number[0]+Number[1]*Number[2]; if(L==8) Out_put=Number[0]-Number[1]*Number[2]; if(L==9) Out_put=Number[0]/Number[1]*Number[2]; if(L==10) Out_put=Number[0]+Number[1]/Number[2]; if(L==11) Out_put=Number[0]-Number[1]/Number[2]; if(L==12) Out_put=Number[0]*Number[1]/Number[2]; }void Xian_shi(){if(m!=1){Key_scan();/* 显示函数与A[i]有关*/P0=A[0]; P2=C[8];Delay(1);P0=A[1]; P2=C[7];Delay(1);P0=A[2]; P2=C[6];Delay(1);P0=A[3]; P2=C[5];Delay(1);P0=A[4]; P2=C[4];Delay(1);P0=A[5]; P2=C[3];Delay(1);P0=A[6]; P2=C[2];Delay(1);P0=A[7]; P2=C[1];Delay(1);}}void main(){while(1){Xian_shi();Yun_suan();show( Out_put );}}//。

C语言基础—计算器程序

C语言基础—计算器程序
清华大学出版社
2.1.3 整型数据
2.1 数据类型与表达式
清华大学出版社
2.1 数据类型与表达式
2.1.3 整型数据
说明: (1) 实际上,常用的整型变量类型是:int 或 short。 (2) 特别强调:short 所适用的数据范围为 -32768~32767。
例如:short x=32768; x的赋值超出了-32768~32767的范围,会出现数据溢出,程序运行结 果错误。为避免数据溢出,超出-32768~32767范围的数据,要定义为 int 或long。
清华大学出版社
2.1 数据类型与表达式
2.1.1 C语言数据类型
所谓数据类型,就是在存储数据时,编译系统根据数据的大小分配不同 大小的存储空间,即不同类型的数据分配不同长度的存储单元,采用不同的存 储形式。例如:基本整型(int),Visual C++6.0分配4字节存储空间,字符型
(char),Visual C++6.0分配1字节存储空间。
C语言程序设计
清华清大华学大出学出版版社社
项目2 计算器程序
学习目标
熟练掌握C语言的常量与变量 掌握C语言的数据类型分类 重点掌握C语言的整型和浮点型数据的表示方法、
分类、存储单元及取值范围 重点掌握算术运算符和算术表达式 掌握赋值运算符和赋值表达式 重点掌握整型、浮点型数据的格式化输入与输出 理解C语言程序设计的步骤
}
清华大学出版社
2.1 数据类型与表达式
2.1.5 基本算术运算符和算术表达式
1.基本的算术运算符
清华大学出版社
2.1 数据类型与表达式
2.1.5 基本算术运算符和算术表达式
说明:

C++ 用VC 编写计算器程序

C++ 用VC 编写计算器程序

IDC_Exit OnExit
5
01. 12
微机上机报告
控件:
ID:IDC_RADIO1 IDC_RADIO2 IDC_SIN IDC_ARCSIN IDC_COS IDC_TAN 消息函数: OnRadio1 OnRadio2 OnSin OnArcsin OnCos OnTan
控件:
ID:IDC_ARCCOS IDC_ARCTANV IDC_EXP IDC_SQRT IDC_LN IDC_LOG 消息函数: OnArccos OnArctan OnExp OnSqrt OnLn OnLog
及角度制数据的三角计算。 2.2、注意事项:
使用除法计算时应注意不能使被除数为 0,否则会出错:
出现此错误时只需点击确定即可继续之前的计算。 在使用三角函数时应先确定所输入的数据是角度制还是弧度
制的数据,否则计算器会跳出提醒框,如下所示:
2
01. 12
微机上机报告
而计算反三角函数时只能计算弧度制数据得到角度制结果:
m_Edit1.ReplaceSel(" ");
Num=' ';
result=0;
control=0;
UpdateData(FALSE);
}
计算的实现,
按钮下程序代码的实现:
void CCalculatorDlg::OnAdd()
//加法运算
{
// TODO: Add your control notification handler code here
{
if(sub==0)
{
MessageBox("除数不能为 0!请重新输入.");
char ed[50];

计算器程序说明文档附C语言代码

计算器程序说明文档附C语言代码

- 1 -计算器程序说明文档附C 语言代码1、 功能: 接收带运算符的字符串输入,完成计算,显示给过,循环。

2、 程序版本:calculator 1.1编 写 人:東风日 期:2010-5-25 ~~ 2010-5-303、 涉及的运算符:共有11种运算符:+,—,×,÷,%,√¯(用S 替代),ˆ(幂运算),=,{},[ ],( )4、 实现过程:输入:一个字符串编译:判断括号是否匹配计算:处理字符串,计算出最终结果输出: 输出最终结果5、 规约说明:● 目前版本不提供输入小数和负数的处理,只能处理整数,但基本实现了复杂计算的这个运算方式,后期继续完善。

● 在字符串以“=”作为运算式结束标志● 由于键盘无法输入“√¯”,在输入中用“S ”替代,开根号的数自动取整,如:要计算根号2用:S2= ,结果为:1,若开根号数小于0,结果返回为:-1- 2 -● 允许一对括号内只有一个数字,如:3+(12)=● 允许括号重叠和重复成对出现,且{ },[ ],( )之间没有优先级,只是方便使用者自己区分,和正常习惯,如:S{S[1+2*3/((4))^5]+S[(6)]}= , S(64)=● 不允许输入连续两个非括号、根号和“=”运算符,如:3++3=但这样可以: 3+S4=6、 问题分析:6.1、字符串的要处理结构有哪些?7种运算符:+,—,×,÷,%,√¯,ˆ和3种括号: {},[ ],( )之间的任意组合。

由于还没有编写判断输入错误的模块,必需要按照正确的语法来输入,为了方便处理,以“=”号做为结束标志。

如:S{[1+2*3/4%2-S4+S(2+2^5/8)]^2+2*(3)}= 结果为:86.2、字符的存储使用什么类型:在处理字符串中,若使用char 型存取(指对链栈数据域的读写操作),比较方便,但对于大于两位的数字不好怎么处理,若该用- 3 -int 型可方便解决这个问题,只要将运算符用相应的数字在内部代替,这样一个中间转换的过程,相当于一个内部协议,同时对应相同的优先级二维数组下标,可方便的进行优先级判断。

用C语言编写简易计算器

用C语言编写简易计算器

• 选择9,程序如图: 程序大致与8的 理解一样。
选择10与11,程序如图:
程序:
如果选择7的话,就直接把输出的格式声明直 接由%d改成%x就行了,编译器会自己变换 ;程序如下:
如果选择8,程序如图: 我们用一个数组来储放 一个二进制数,先用 第一个for语句来使数 组的位数发生改变。 如输入1111010,在 数组中的第一个1是第 0位,但是在二进制中 它是最高位,所以经 过for语句后我们就把 它的位数由低变高了 ,然后再运算。
先输入一个数值判断数是不是大于2如果是再判断数除以2后的余数是不是等于零如果是就把1赋给数组元素否则就把0赋给数组元素
用C语言编写简易计算器
1302班,许创斌、叶立伟、张友学 制作
1. 程序的大概 2. 程序的讲解 3. 程序源代码
程序o.....while语句;使其只 要我们输入的选择不是12就一直循环。 2.在程序中我们还用到了清屏函数,其作用就是把 之前显示在控制台(程序运行后弹出来那个黑色 窗口)的东西全清掉(类似于 擦黑板:),用清 屏函数时,记得要把头文件 stdlib.h写上.
程序的讲解
• 首先我们在主函数 main()的开头,我们先 用函数printf向显示器 输出你将进行运算的 选项供你选择。如图 :
• 接下来,我们用switch 语句根据你的选择, 使流程跳转到不同的 语句。如:
• 如果你输入的选择是 在1~5之间,那么程序 如图: • 因为都是输入2个数, 所以我们
把放在switch的前面;
如果你选择6,程序如图: 先输入一个数值,判断数 是不是大于2,如果是, 再判断数除以2后的余数 是不是等于零,如果是, 就把‘1’赋给数组元素 ,否则就把‘0’赋给数 组元素;然后把数值除以 2,再依次循环以上步骤 。如果数值不大于2,就 直接把‘1’赋给数组元 素。最后把数组输出,即 得到二进制的数。

速算,简易计算器c语言代码,可实现加减乘除

速算,简易计算器c语言代码,可实现加减乘除

速算,简易计算器c语⾔代码,可实现加减乘除#include"stdio.h"#include"math.h"#include"stdlib.h"struct optrstyle{int top;char stack[20];}struct opndstyle{int top;int stack[20];}void main(){char ch;while(1){printf("-----------------------------------------\n");printf("|-----------欢迎来到速算24--------------|\n");printf("|----------是否开始游戏------------|\n");printf("|--------- 开始游戏请按'Y'-------------|\n");printf("|--------- 退出游戏请按其他键-------------|\n");printf("-----------------------------------------\n");scanf("%c",&ch);if(ch=='Y' or ch=='y'){}elsebreak;}}int EvaluateExpression(){// 算术表达式求值的算符优先算法。

设OPTR 和OPND 分别为运算符栈和运算数栈,OP 为运算符集合。

InitStack(OPTR);Push(OPTR,'#');InitStack(OPND);c = getchar();while(c!='#' || GetTop(OPTR)!='#'){if(!In(c,OP)){Push((OPND,c);c = getchar();} // 不是运算符则进栈elseswitch(Precede(GetTop(OPTR),c)){case '<': // 栈顶元素优先权低Push(OPTR,c);c = getchar();break;case '=': // 脱括号并接收下⼀字符Pop(OPTR,x); c = getchar();break;case '>': // 退栈并将运算结果⼊栈Pop(OPTR,theta);Pop(OPND,b);Pop(OPND,a);Push(OPND,Operate(a,theta,b));break;}// switch}// whilereturn GetTop(OPND);}// EvaluateExpressionint changecard( char a[]){if()void InitStack(Stack &S){S.top=-1;}int Pop1(Stack &S){if(S.top==-1){printf("stack is empty!");exit (1);}ElemType temp=S.stack[S.top]; S.top--;return temp;}int GetTop1(Stack &S){if(S.top==-1){printf("stack is empty!");exit (1);}return S.stack[S.top];}char Pop2(Stack &S){if(S.top==-1){printf("stack is empty!");exit (1);}ElemType temp=S.stack[S.top]; S.top--;return temp;char GetTop2(Stack &S){if(S.top==-1){printf("stack is empty!");exit (1);}return S.stack[S.top];}char Precede(char a,char b)//算符优先级函数{ char temp;switch(a){case '+','-':{if (b=='*' or b=='/' or b=='(')temp='<';else temp='>';}break;case '*','/':{if(b=='(')temp='<';else temp='>';}break;case '(':{if(b==')')temp='=';elsetemp='<';}break;case ')':temp='>';break; case '#':{if(b=='#') temp='='; else temp='<'; }break; default break; }return temp; }。

C编写简易计算器附源代码超详细共16页文档

C编写简易计算器附源代码超详细共16页文档

超详细一、因为计算器设计的控件太多,不便使用控制台应用程序完成,所以这里使用Windows窗体应用程序,并命名为Calc,如下图所示:二、向窗体中拖入需要的控件,如下图所示:(完成效果图)结果显示区(作者博客左边的文本框)是TextBox控件,并修改其name为txtShow ,按键0~9为Button控件,并将其name分别修改为btn_0、btn_1、btn_2、btn_3、btn_4、btn_5、btn_6、btn_7、btn_8、btn_9;按键【负数】的name值修改为btn_sign,按键【.】的name 修改为btn_dot,按键【+ - * /】的name值分别修改为btn_add、btn_sub、btn_mul、btn_div,按键【=】的name值修改为btn_equ,按键【倒数】的name值修改为btn_rev,按键【平方】的name值修改为btn_sqr,按键【开方】的name值修改为btn_sqrt。

右边的计算器图片空间是PictureBox,作者博客控件是LinkLabel,可以不添加,以上所有控件均可按照需求添加,只保留自己需要的按钮控件和textbox控件即可。

三、代码部分(含解释),采用switch多分支语句编写using System;using System.Drawing;using System.Collections;using SystemponentModel;using System.Windows.Forms;using System.Data;namespace Calc///<summary>/// QQ:479340056 温柔一刀C#简易计算器的实现///</summary>public class CalcForm : System.Windows.Forms.Formprivate System.Windows.Forms.Button btn_0;private System.Windows.Forms.Button btn_1;private System.Windows.Forms.Button btn_2;private System.Windows.Forms.Button btn_3;private System.Windows.Forms.Button btn_4;private System.Windows.Forms.Button btn_5;private System.Windows.Forms.Button btn_6;private System.Windows.Forms.Button btn_7;private System.Windows.Forms.Button btn_8;private System.Windows.Forms.Button btn_9;private System.Windows.Forms.Button btn_add;private System.Windows.Forms.Button btn_sub;private System.Windows.Forms.Button btn_mul;private System.Windows.Forms.Button btn_div;private System.Windows.Forms.Button btn_sqrt;private System.Windows.Forms.Button btn_sign;private System.Windows.Forms.Button btn_equ;private System.Windows.Forms.Button btn_dot;private System.Windows.Forms.Button btn_rev;private System.Windows.Forms.TextBox txtShow;private System.Windows.Forms.Button btn_sqr;private PictureBox pictureBox1;private LinkLabel linkLabel1;///<summary>///必需的设计器变量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MICROSOFT VIUSAL C++打开Microsoft Viusal C++: 文件—新建—选择C++ Source File或C/C++Haeder File—在右边的文件名处填入文件名,如计算器.c (注意一定要以.c作后缀)--确定—把下面的程序全部粘贴到窗口内-然后运行依次按Ctrl+F7 F7 Ctrl+F5 在弹出来的选择框点确定—OK。

#include<stdio.h>#include<windows.h>int main(){void top();voidno1(),no2(),no3(),no4(),no5(),no6(),no7(),no8(),no9(),no10(),no11(),no12(),no13(),no14(),no15(), no16(),no17(),no18(),no19(),no20(),no21(),no22(),no23(),no24(),no25();void menu();int k=1;char m;char select;while(1){ system("cls"); //清屏menu();system("color 0a"); //绿化scanf("%c",&select);switch(select){case'a':no1();break;case'b':no2();break;case'c':no3();break;case'd':no4();break;case'e':no5();break;case'f':no6();break;case'g':no7();break;case'h':no8();break;case'i':no9();break;case'j':no10();break;case'k':no11();break;case'l':no12();break;case'm':no13();break;case'n':no14();break;case'o':no15();break;case'p':no16();break;case'q':no17();break;case'r':no18();break;case's':no19();break;case't':no20();break;case'u':no21();break;case'v':no22();break;case'w':no23();break;case'x':no24();break;}scanf("%d",&k);if(k==0)break;if(k==1){printf("\n");}}return 0;}void menu(){//printf("\n 老师您好!我是通信2班的陈国昌学号201130095092\n\n");printf(" 请键入字母选择功能,按其他键退出:\n\n");printf(" a.整数加法h.小数乘法o.八转十六v.二进制加法运算\n\n");printf(" b.整数减法i.小数除法p.十进转二w.二进制减法运算\n\n");printf(" c.整数乘法j.二进转八q.十进转八x.二进制原补反码\n\n");printf(" d.整数除法k.二进转十r.十转十六\n\n");printf(" e.整除求余l.二转十六s.十六转二\n\n");printf(" f.小数加法m.八进转二t.十六转八\n\n");printf(" g.小数减法n.八进转十u.十六转十\n");}void no1(){ int i,k=1,sum1=0,sum2=0;char num[20],rem[20];while(k==1){printf("整数加法,请输入第一个数:\n");scanf("%s",num);for(i=0;num[i]!=0;i++){if(num[i]>47&&num[i]<58){sum1=sum1*10+num[i]-48;k=0;}else{printf("输入错误,输入的只能是0…9的数字,请重新输入:\n");k=1;break;}}} k=1;while(k==1){printf("请输入第二个数:\n");scanf("%s",rem);for(i=0;rem[i]!=0;i++){if(rem[i]>47&&rem[i]<58){sum2=sum2*10+rem[i]-48;k=0;}else{printf("输入错误,输入的只能是0…9的数字,请重新输入:");k=1;break;}}} printf("%d+%d=%d\n",sum1,sum2,sum1+sum2);printf("键入1键继续,键入0键退出.\n");}void no2(){ int i,k=1,sum1=0,sum2=0;char num[20],rem[20];while(k==1){printf("整数减法,请输入第一个数:\n");scanf("%s",num);for(i=0;num[i]!=0;i++){if(num[i]>47&&num[i]<58){sum1=sum1*10+num[i]-48;k=0;}else{printf("输入错误,输入的只能是0…9的数字,请重新输入:\n");k=1;break;}}} k=1;while(k==1){printf("请输入第二个数:\n");scanf("%s",rem);for(i=0;rem[i]!=0;i++){if(rem[i]>47&&rem[i]<58){sum2=sum2*10+rem[i]-48;k=0;}else{printf("输入错误,输入的只能是0…9的数字,请重新输入:");k=1;break;}}} printf("%d-%d=%d\n",sum1,sum2,sum1-sum2);printf("键入1键继续,键入0键退出.\n");}void no3(){ int i,k=1,sum1=0,sum2=0;char num[20],rem[20];while(k==1){printf("整数乘法,请输入第一个数:\n");scanf("%s",num);for(i=0;num[i]!=0;i++){if(num[i]>47&&num[i]<58){sum1=sum1*10+num[i]-48;k=0;}else{printf("输入错误,输入的只能是0…9的数字,请重新输入:\n");k=1;break;}}} k=1;while(k==1){printf("请输入第二个数:\n");scanf("%s",rem);for(i=0;rem[i]!=0;i++){if(rem[i]>47&&rem[i]<58){sum2=sum2*10+rem[i]-48;k=0;}else{printf("输入错误,输入的只能是0…9的数字,请重新输入:");k=1;break;}}} printf("%d*%d=%d\n",sum1,sum2,sum1*sum2);printf("键入1键继续,键入0键退出.\n");}void no4(){ int i,k=1,sum1=0,sum2=0;char num[20],rem[20];while(k==1){printf("整数除法,请输入第一个数:\n");scanf("%s",num);for(i=0;num[i]!=0;i++){if(num[i]>47&&num[i]<58){sum1=sum1*10+num[i]-48;k=0;}else{printf("输入错误,输入的只能是0…9的数字,请重新输入:\n");k=1;break;}}} k=1;while(k==1){printf("请输入第二个数:\n");scanf("%s",rem);for(i=0;rem[i]!=0;i++){if(rem[i]>47&&rem[i]<58){sum2=sum2*10+rem[i]-48;k=0;}else{printf("输入错误,输入的只能是0…9的数字,请重新输入:");k=1;break;}}} printf("%d/%d=%d\n",sum1,sum2,sum1/sum2);printf("键入1键继续,键入0键退出.\n");}void no5(){ int i,k=1,sum1=0,sum2=0;char num[20],rem[20];while(k==1){printf("整除求余,请输入第一个数:\n");scanf("%s",num);for(i=0;num[i]!=0;i++){if(num[i]>47&&num[i]<58){sum1=sum1*10+num[i]-48;k=0;}else{printf("输入错误,输入的只能是0…9的数字,请重新输入:\n");k=1;break;}}} k=1;while(k==1){printf("请输入第二个数:\n");scanf("%s",rem);for(i=0;rem[i]!=0;i++){if(rem[i]>47&&rem[i]<58){sum2=sum2*10+rem[i]-48;k=0;}else{printf("输入错误,输入的只能是0…9的数字,请重新输入:");k=1;break;}}} i=sum1/sum2;printf("%d除%d商为%d余数为%d\n",sum1,sum2,sum1/sum2,sum1-i);printf("键入1键继续,键入0键退出.\n");}void no6(){float x,y;printf("小数加法,请输入第一个数:\n");scanf("%f",&x);printf("请输入第二个数:\n");scanf("%f",&y);printf("%5.2f+%5.2f=%5.3f\n\n",x,y,x+y);printf("键入1键继续,键入0键退出.\n");}void no7(){float x,y;printf("小数减法,请输入第一个数:\n");scanf("%f",&x);printf("请输入第二个数:\n");scanf("%f",&y);printf("%5.2f-%5.2f=%5.3f\n\n",x,y,x-y);printf("键入1键继续,键入0键退出.\n");}void no8(){float x,y;printf("小数乘法,请输入第一个数:\n");scanf("%f",&x);printf("请输入第二个数:\n");scanf("%f",&y);printf("%5.2f*%5.2f=%5.3f\n\n",x,y,x*y);printf("键入1键继续,键入0键退出.\n");}void no9(){float x,y;printf("小数除法,请输入第一个数:\n");scanf("%f",&x);printf("请输入第二个数:\n");scanf("%f",&y);printf("%5.2f/%5.2f=%5.3f\n\n",x,y,x/y);printf("键入1键继续,键入0键退出.\n");}void no10(){int i,j,k=1,sum=0;char num[20],rem[20];printf("二进转八,请输入二进制数组:\n");while(k==1){scanf("%s",num);for(i=0;num[i]!=0;i++){if(num[i]!='0'&&num[i]!='1'){printf("输入错误,输入的只能是0和1,请重新输入:\n");k=1;break;}else{sum=sum*2+num[i]-48;k=0;}}}{rem[j]=sum%8;if(sum<=7){rem[j]=sum;break;}else{sum=sum-sum%8;i=sum/8;sum=i;}}printf("二进制数组:");for(i=0;num[i]!=0;i++){printf("%d",num[i]-48);}printf(" 的八进制表示为:");for(i=j;i>=0;i--){printf("%d",rem[i]);}printf("\n键入1键继续,键入0键退出.\n");}void no11(){int i,j,k=1,sum=0;char num[20],rem[20];printf("二进转十,请输入二进制数组:\n");while(k==1){scanf("%s",num);for(i=0;num[i]!=0;i++){if(num[i]!='0'&&num[i]!='1'){printf("输入错误,输入的只能是0和1,请重新输入:\n");k=1;break;}else{sum=sum*2+num[i]-48;k=0;}}}for(j=0;j<=20;j++){rem[j]=sum%10;if(sum<=9){rem[j]=sum;break;}else{sum=sum-sum%10;i=sum/10;sum=i;}}printf("二进制数组:");for(i=0;num[i]!=0;i++){printf("%d",num[i]-48);}printf(" 的十进制表示为:");{printf("%d",rem[i]);}printf("\n键入1键继续,键入0键退出.\n");}void no12(){int i,j,k=1,sum=0;char num[20],rem[20];printf("二转十六,请输入二进制数组:\n");while(k==1){scanf("%s",num);for(i=0;num[i]!=0;i++){if(num[i]!='0'&&num[i]!='1'){printf("输入错误,输入的只能是0和1,请重新输入:\n");k=1;break;}else{sum=sum*2+num[i]-48;k=0;}}}for(j=0;j<=20;j++){rem[j]=sum%16;if(sum<=15){rem[j]=sum;break;}else{sum=sum-sum%16;i=sum/16;sum=i;}}printf("二进制数组:");for(i=0;num[i]!=0;i++){printf("%d",num[i]-48);}printf(" 的十六进制表示为:");for(i=j;i>=0;i--){if(rem[i]>9&&rem[i]<16){printf("%c",rem[i]+55);}else{printf("%d",rem[i]);}}printf("\n键入1键继续,键入0键退出.\n");}void no13(){int i,j,k=1,sum=0;char num[20],rem[20];printf("八进转二,请输入八进制数组:\n");while(k==1){scanf("%s",num);for(i=0;num[i]!=0;i++){if(num[i]<56&&num[i]>47){sum=sum*8+num[i]-48;k=0;}else {printf("输入错误,输入的只能为0…7的数字,请重新输入:\n");k=1;break;} }}for(j=0;j<=20;j++){rem[j]=sum%2;if(sum<=1){rem[j]=sum;break;}else{sum=sum-sum%2;i=sum/2;sum=i;}}printf("八进制数组:");for(i=0;num[i]!=0;i++){printf("%d",num[i]-48);}printf(" 的二进制表示为:");for(i=j;i>=0;i--){printf("%d",rem[i]);}printf("\n键入1键继续,键入0键退出.\n");}void no14(){int i,j,k=1,sum=0;char num[20],rem[20];printf("八进转十,请输入八进制数组:\n");while(k==1){scanf("%s",num);for(i=0;num[i]!=0;i++){if(num[i]<56&&num[i]>47){sum=sum*8+num[i]-48;k=0;}else {printf("输入错误,输入的只能为0…7的数字,请重新输入:\n");k=1;break;} }}for(j=0;j<=20;j++){rem[j]=sum%10;if(sum<=9){rem[j]=sum;break;}else{sum=sum-sum%10;i=sum/10;sum=i;}}printf("八进制数组:");for(i=0;num[i]!=0;i++){printf("%d",num[i]-48);}printf(" 的十进制表示为:");for(i=j;i>=0;i--){printf("%d",rem[i]);}printf("\n键入1键继续,键入0键退出.\n");}void no15(){int i,j,k=1,sum=0;char num[20],rem[20];printf("八转十六,请输入八进制数组:\n");while(k==1){scanf("%s",num);for(i=0;num[i]!=0;i++){if(num[i]<56&&num[i]>47){sum=sum*8+num[i]-48;k=0;}else {printf("输入错误,输入的只能为0…7的数字,请重新输入:\n");k=1;break;} }}for(j=0;j<=20;j++){rem[j]=sum%16;if(sum<=15){rem[j]=sum;break;}else{sum=sum-sum%16;i=sum/16;sum=i;}}printf("八进制数组:");for(i=0;num[i]!=0;i++){printf("%d",num[i]-48);}printf(" 的十六进制表示为:");for(i=j;i>=0;i--){if(rem[i]>9&&rem[i]<16){printf("%c",rem[i]+55);}else{printf("%d",rem[i]);}}printf("\n键入1键继续,键入0键退出.\n");}void no16(){int i,j,k=1,sum=0;char num[20],rem[20];printf("十进转二,请输入十进制数组:\n");while(k==1){scanf("%s",num);for(i=0;num[i]!=0;i++){if(num[i]<58&&num[i]>47){sum=sum*10+num[i]-48;k=0;}else {printf("输入错误,输入的只能为0…9的数字,请重新输入:\n");k=1;break;} }}for(j=0;j<=20;j++){rem[j]=sum%2;if(sum<=1){rem[j]=sum;break;}else{sum=sum-sum%2;i=sum/2;sum=i;}}printf("十进制数组:");for(i=0;num[i]!=0;i++){printf("%d",num[i]-48);}printf(" 的二进制表示为:");for(i=j;i>=0;i--){printf("%d",rem[i]);}printf("\n键入1键继续,键入0键退出.\n");}void no17(){int i,j,k=1,sum=0;char num[20],rem[20];printf("十进转八,请输入十进制数组:\n");while(k==1){scanf("%s",num);for(i=0;num[i]!=0;i++){if(num[i]<58&&num[i]>47){sum=sum*10+num[i]-48;k=0;}else {printf("输入错误,输入的只能为0…9的数字,请重新输入:\n");k=1;break;} }}for(j=0;j<=20;j++){rem[j]=sum%8;if(sum<=7){rem[j]=sum;break;}else{sum=sum-sum%8;i=sum/8;sum=i;}}printf("十进制数组:");for(i=0;num[i]!=0;i++){printf("%d",num[i]-48);}printf(" 的八进制表示为:");for(i=j;i>=0;i--){printf("%d",rem[i]);}printf("\n键入1键继续,键入0键退出.\n");}void no18(){int i,j,k=1,sum=0;char num[20],rem[20];printf("十转十六,请输入十进制数组:\n");while(k==1){scanf("%s",num);for(i=0;num[i]!=0;i++){if(num[i]<58&&num[i]>47){sum=sum*10+num[i]-48;k=0;}else {printf("输入错误,输入的只能为0…9的数字,请重新输入:\n");k=1;break;} }}for(j=0;j<=20;j++){rem[j]=sum%16;if(sum<=15){rem[j]=sum;break;}else{sum=sum-sum%16;i=sum/16;sum=i;}}printf("十进制数组:");for(i=0;num[i]!=0;i++){printf("%d",num[i]-48);}printf(" 的十六进制表示为:");for(i=j;i>=0;i--){if(rem[i]>9&&rem[i]<16){printf("%c",rem[i]+55);}else{printf("%d",rem[i]);}}printf("\n键入1键继续,键入0键退出.\n");}void no19(){int i,j,k=1,sum=0;char num[20],rem[20];printf("十六转二,请输入十六进制数组:\n");while(k==1){scanf("%s",num);//开始时我想到用getchar()的,但时做时输入都要把getchar()循环,很麻烦,所以就用scanf("%s",num);for(i=0;num[i]!=0;i++)//num[i]!=0;的i值可以确定,下面会用到时。

相关文档
最新文档