/*
分三种情况:
1.减数长度大于被减数
交换减数与被减数,输出负号,方便减
2.减数长度等于被减数(分三种情况)
a.减数大于被减数,类似1情况1
b.减数等于被减数,两数相等,直接输出0,完成。
c.减数小于被减数
3.减数长度小于被减数
*/ #include<stdio.h>
#include<string.h>
int main() {
char ch1[], ch2[];
int num1[], num2[], num[];
int i, j, flag1 = , max, flag2 = ;
scanf("%s", ch1);
scanf("%s", ch2);
max = strlen(ch1);
if (strlen(ch1)<strlen(ch2)) {//减数长度大于被减数,必定为负数
flag1 = -;
max = strlen(ch2);
printf("-");
}
if (strlen(ch1) == strlen(ch2))
flag1 = ;//确定输入数字的长度比较结果。便于采用合理的运算方式
for (i = ; i<max; i++) {//初始化
num[i] = ;
num1[i] = ;
num2[i] = ;
}
for (i = strlen(ch1) - , j = ; i >= ; i--)
num1[j++] = ch1[i] - '';//将字符数组元素所对应数字存入整形数组
for (i = strlen(ch2) - , j = ; i >= ; i--)
num2[j++] = ch2[i] - '';
//分情况对数字进行减法运算
if (flag1 == ) {//第三种情况
for (i = ; i<strlen(ch1); i++) {
num[i] = num1[i] - num2[i];
if (num[i]<) {
num[i] += ;
num1[i + ]--;
}
}
}
else if (flag1 == ) {//第二种情况
for (i = strlen(ch1) - ; i <= ; i--) {//循环结束的情况有两种 1.ch1[i]!=ch2[i] 2.遍历完数组中所有元素
if (ch1[i] != ch2[i])
break;
}
if (ch1[i]>ch2[i]) {//ch1[i]>ch2[i],自然相减
for (i = ; i<strlen(ch1); i++) {
num[i] = num1[i] - num2[i];
if (num[i]<) {
num[i] += ;
num1[i + ]--;
}
}
}
else if (ch1[i] == ch2[i]) {//相等为0
printf("");
}
else {//输出负号,交换减数被减数
printf("-");
for (i = ; i<strlen(ch1); i++) {
num[i] = num2[i] - num1[i];
if (num[i]<) {
num[i] += ;
num2[i + ]--;
}
}
}
} else {//第一种情况
for (i = ; i<strlen(ch2); i++) {
num[i] = num2[i] - num1[i];
if (num[i]<) {
num[i] += ;
num2[i + ]--;
}
}
}
for (i = max; i >= ; i--) {
if (num[i] <= && flag2 == )
continue;
flag2 = ;
printf("%d", num[i]);
}
return ; }

大数四则运算之减法运算-----c语言版的更多相关文章

  1. libnode 0.4.0 发布,C++ 语言版的 Node.js

    libnode 0.4.0 支持 Windows ,提升了性能,libuv 更新到 0.10.17 版本,libj 更新到 0.8.2 版本. libnode 是 C++ 语言版的 Node.js,和 ...

  2. md5加密算法c语言版

    from: http://blog.sina.com.cn/s/blog_693de6100101kcu6.html 注:以下是md5加密算法c语言版(16/32位) ---------------- ...

  3. 基于gSOAP使用头文件的C语言版web service开发过程例子

    基于gSOAP使用头文件的C语言版web service开发过程例子 一服务端 1 打开VS2005,创建一个工程,命名为calcServer. 2 添加一个头文件calc.h,编辑内容如下: 1// ...

  4. Windows 8.1 with Update 镜像下载(增OEM单语言版)

    该系统已有更新的版本,请转至<Windows 8.1 with update 官方最新镜像汇总>下载. 2014年4月9日凌晨,微软向MSDN订阅用户开放了Windows 8.1 with ...

  5. 数据结构C语言版 有向图的十字链表存储表示和实现

    /*1wangxiaobo@163.com 数据结构C语言版 有向图的十字链表存储表示和实现 P165 编译环境:Dev-C++ 4.9.9.2 */ #include <stdio.h> ...

  6. 数据结构C语言版 表插入排序 静态表

    数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./*  数据结构C语言版 表插入排序  算法10.3 P267-P270  编译 ...

  7. 数据结构C语言版 弗洛伊德算法实现

    /* 数据结构C语言版 弗洛伊德算法  P191 编译环境:Dev-C++ 4.9.9.2 */ #include <stdio.h>#include <limits.h> # ...

  8. VS2015如何新建C++或者C语言版的lib文件

    当我们不想公开我们的代码的时候,可以把我们的代码封装成静态数据连接库,即lib文件.下面介绍下如何生成lib文件. 以VS2015为例,一种是C++版的lib文件,一种是C语言版的lib文件. 一.按 ...

  9. hbase rest api接口链接管理【golang语言版】

    # go-hbase-resthbase rest api接口链接管理[golang语言版]关于hbase的rest接口的详细信息可以到官网查看[http://hbase.apache.org/boo ...

随机推荐

  1. React16源码解读:开篇带你搞懂几个面试考点

    引言 如今,主流的前端框架React,Vue和Angular在前端领域已成三足鼎立之势,基于前端技术栈的发展现状,大大小小的公司或多或少也会使用其中某一项或者多项技术栈,那么掌握并熟练使用其中至少一种 ...

  2. 失衡天平 - 简单dp

    链接:https://www.nowcoder.com/acm/contest/186/C来源:牛客网 终于Alice走出了大魔王的陷阱,可是现在傻傻的她忘了带武器了,这可如何是好???这个时候,一个 ...

  3. vue学习笔记3: 动态绑定

    一.知识点 动态绑定: vue-class: 三目写法 对象写法 数组写法 vue-style: 三目写法 对象写法 数组写法 二.代码示例 1. vue-class vue-class三目写法 &l ...

  4. Flask DBUtils

    作用:创建连接池,解决多线程问题 1.安装模块 pip3 install -i https://pypi.douban.com/simple DBUtils 2.settings.py(配置文件) f ...

  5. 为什么你应该使用 Kubernetes(k8s)

    Kubernetes (Kube 或 K8s)越来越流行,他是市场上最好的容器编排工具之一. 1. 什么是容器? 容器就是一个包,其中包含了应用及其所有依赖. 容器中的应用与主机系统是隔离的,不关注环 ...

  6. 代码审计之CVE-2018-7600-Drupal远程代码执行漏洞-Render API

    今天学习一下Drupal的另一个漏洞,由于渲染数组不当造成的漏洞 poc: url:http://localhost/drupal-8.5.0/user/register?element_parent ...

  7. 通过Excel表创建sql脚本

    Excel.sql脚本 1)准备好存有数据的excel表格: 这里我们有些小技巧可以让表下面和右边的表格隐藏,在第8行的位置按住“Ctrl+Shift+↓”可以选定下面的空格,然后鼠标右键 隐藏即可, ...

  8. 玩转Django2.0---Django笔记建站基础四(视图)

    第四章 视图 4.1 探究视图 一.视图说明 视图(View)是Django的MTV架构模式的V部分,主要负责处理用户请求和生成相应的相应部分,然后在页面或其它类型文档中显示.也可以理解为视图是MVC ...

  9. 数据结构——栈的应用 NOI2.2 括号匹配问题

    栈是一种数据结构,相当于一个容器,将一个又一个变量从顶端压进去,需要使用时,又从顶端拿出来,其具体使用方法,下面是详细讲解: #include<stack>必须使用此头文件 stack&l ...

  10. 团队项目-Beta冲刺1(七个小矮人)

    团队项目-Beta冲刺1(七个小矮人) 一.格式描述 这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScien ...