一个简易的bc计算器
来源:互联网 发布:seo诊断报告 编辑:程序博客网 时间:2024/05/18 12:35
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
void help( void );
void chushi( void );
void test( void );
void bc( void );
void main()
{
// printf( "%c\n", ch );
chushi();
//help( ch );
}
void help(void)
{
printf( " list help:\n");
}
void chushi( )
{
char *input;
while(1)
{
printf( "terminal:" );
input = (char*)malloc(sizeof(char));
gets( input);
// getchar();
if( 0 ==(strcmp( "help", input )) )
help();
if( 0 ==(strcmp( "test", input )) )
test();
if( 0 ==(strcmp( "bc", input )) )
bc();
}
}
void test( void )
{
char *m;
while(1)
{
printf( "test:" );
m = (char*)malloc(sizeof(char));
gets( m);
// getchar();
if( 0 ==(strcmp( "help",m )) )
help();
if( 0 ==(strcmp( "q",m)) )
break;
}
}
void bc( void )
{
while(1)
{
char*inputs;
char*str_left;
char*str_right;
int i;
int flag =0;
int leftend;
int rightend;
int leftn =0;
int rightn =0;
int leftint;
int rightint;
int length =1;
int symbol;
inputs = (char *)malloc( 100* sizeof( char) );
if( inputs == NULL) printf("init inputs error\n");
str_left = ( char *)malloc( 10* sizeof( char) );
if( inputs == NULL) printf("init inputs error\n");
str_right = ( char *)malloc( 10* sizeof( char ) );
if( inputs == NULL) printf("init inputs error\n");
printf("bc:");
gets( inputs);
//puts( inputs );
for( i = 0; inputs[i] != 0; i++)
{
if( inputs[i]== '+')
{
flag= i;
symbol= 1;
}
if(inputs[i] == '-')
{
flag= i;
symbol= 2;
}
if(inputs[i] == '*')
{
flag= i;
symbol= 3;
}
if(inputs[i] == '/')
{
flag= i;
symbol= 4;
}
if(inputs[i] == 'q')
{
//flag= i;
symbol= 0;
}
if(inputs[i] == 'h')
{
//flag= i;
symbol= 99;
}
if( i >100 )
printf("inputerror!!!");
length++;
//printf("%d\n",flag);
}
if( symbol == 0 )break;
//inputs = (char *)malloc(length * sizeof( char) );
for( i = 0; inputs[i] != 0;i++ )
{
if( i <flag && isdigit( inputs[i]) )
{
leftend= i;
leftn++;
//printf("%d%d\n",leftend, leftn);
str_left[leftn- 1] = inputs[i];
}
if( i >flag && isdigit( inputs[i]) )
{
rightend= i;
rightn++;
//printf("%d%d\n",rightend, rightn);
str_right[rightn- 1] = inputs[i];
}
}
leftint =atoi(str_left);
//printf("%d\n",leftint);
rightint =atoi(str_right);
//printf("%d\n",rightint);
switch( symbol )
{
case 1:printf("bc:%d\n", ( leftint + rightint ));break;
case 2:printf("bc:%d\n", ( leftint - rightint ));break;
case 3:printf("bc:%d\n", ( leftint * rightint ));break;
case 4:printf("bc:%lf\n", (double)( (double)leftint /(double)rightint )); break;
}
free( str_left );
free( str_right );
free( inputs );
}
}
- 一个简易的bc计算器
- 一个简易的计算器
- 一个简易的计算器
- Linux入门:简易计算器(bc)
- 一个简易计算器的实现
- 一个单片机的简易计算器
- 一个傻傻的简易计算器
- 一个简易的计算器程序
- bc: 一个非常有用的UNIX/LINUX命令行计算器
- 用JS写的一个简易计算器
- 第二课:一个简易计算器的开发
- 用Android写的一个简易计算器
- JavaScript实现一个简易的计算器
- C语言写的一个简易计算器
- 一个Java简易计算器
- 做一个简易计算器
- 一个简易计算器
- 设计一个简易计算器
- 获取所有打印机,设置默认打印机,获取默认打印机
- 公开课机器学习笔记(10)神经网络简介
- 2-3-5 工资类
- 2014蓝桥杯编程题: 蚂蚁感冒
- spark:协同过滤--17
- 一个简易的bc计算器
- C#的Winform窗体之间的传值
- javascript 高级程序设计 第5章 引用类型 Object类型
- centos经常用到的一些文件
- Android执行shell命令封装
- SPAMS稀疏建模工具箱的简单使用说明
- Block实现原理与Block中的循环引用问题
- 错误1error C2040: “menu”:“auto”与“cocos2d::Menu *”的间接寻址级别不同
- online_judge_1080