算法提高 乘法运算  
时间限制:1.0s   内存限制:512.0MB
    
问题描述
  编制一个乘法运算的程序。
  从键盘读入2个100以内的正整数,进行乘法运算并以竖式输出。
输入格式
  输入只有一行,是两个用空格隔开的数字,均在1~99之间(含1和99)。
输出格式
  输出为4行或7行,符合乘法的竖式运算格式。
样例输入
89 13
样例输出
89
×13
━━━
267
89
━━━
1157
输入输出样例1解释
  3×89=267,则第四行267右侧对准个位输出。1×89=89,则第五行89右侧对准十位输出。267+890=1157,则1157右侧对准个位输出。
样例输入
16 8
样例输出
16
× 8
━━━
128
输入输出样例2解释
  8×16=128,则第四行128右侧对准个位输出。计算完成,不再输出。
 
作者注释:这一题做的很蛋疼,格式怎么调都提交不过,以下是自己满意的版本。
 #include<stdio.h>
int main(){
int m,n;
int a[]={},b[]={};//分别用来存放m、n的十位和个位
scanf("%d%d",&m,&n);
a[] = m%;//m的个位
a[] = m/;//m的十位
b[] = n%;//n的个位
b[] = n/;//n的十位
printf("%4d\n",m);
printf("X%3d\n",n);
printf("━━━\n");
if(a[]== && b[]==){//一位数乘一位数
printf("%4d",m*b[]);
}
if(a[]> && b[]==){//两位数乘一位数
printf("%4d",m*b[]);
}
if(a[]== && b[]>){//一位数乘两位数
for(int i=;i<;i++){
if(m*b[i]==)
printf(" 00\n");
else if(i== && m*b[i]!= && m*b[i]/ != )
printf("%4d\n",m*b[i]);
else if(i== && m*b[i]!= && m*b[i]/ != )
printf("%3d\n",m*b[i]);
else
printf("%3d\n",m*b[i]);
}
printf("━━━\n");
printf("%4d",m*n);
}
if(a[]> && b[]>){//两位数乘两位数
for(int i=;i<;i++){
if(m*b[i]==)
printf(" 00\n");
else if(i== && m*b[i]!= && m*b[i]/ != )
printf("%4d\n",m*b[i]);
else if(i== && m*b[i]!= && m*b[i]/ != )
printf("%3d\n",m*b[i]);
else
printf("%3d\n",m*b[i]);
}
printf("━━━\n");
printf("%4d",m*n);
}
}

C语言 · 乘法运算的更多相关文章

  1. 【C语言】超大数乘法运算

    昨天做排列组合的时候遇到A(a,b)这个问题,需要计算A(20,20)超大,计算机32位的,最大数只能是2^32,这让我很悲伤! 于是乎就自己研究了如何进行超大数的计算! /************* ...

  2. 【C语言入门教程】2.6 运算符

    运算符是程序中用于数值运算的操作符,C 语言的运算符可分为 算术运算符.关系与逻辑运算符 和 位操作运算符 这 3 类. 2.6.1 算术运算符 算术运算符用来完成基本的数值运算,如 加.减.乘.除, ...

  3. C语言范例学习01

    编程语言的能力追求T型. 以前学过C语言,但是只学了理论. 从今天开始,我买了本<C语言程序开发范例宝典>.我要把它通关掉. 这应该可以极大地提升我的编程能力. 第一章 基础知识 这章没太 ...

  4. C语言代码优化(转)

    .选择合适的算法和数据结构 选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多.数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则 ...

  5. 【部分原创】标准C语言的优先级、结合性、求值顺序、未定义行为和非确定行为浅析

    零. 优先级    在C++ Primer一书中,对于运算符的优先级是这样描述的:     Precedence specifies how the operands are grouped. It ...

  6. 【C语言】14-返回指针的函数与指向函数的指针

    前言 前面我们花了接近3个章节学习指针,应该都感受到指针的强大了吧.指针可以根据地址直接操作内存中的数据,使用得当的话,不仅能使代码量变少,还能优化内存管理.提升程序性能.关于指针的内容还非常多,比如 ...

  7. 要心中有“数”——C语言初学者代码中的常见错误与瑕疵(8)

    在 C语言初学者代码中的常见错误与瑕疵(7) 中,我给出的重构代码中存在BUG.这个BUG是在飞鸟_Asuka网友指出“是不是时间复杂度比较大”,并说他“第一眼看到我就想把它当成一个数学问题来做”之后 ...

  8. 黑马程序员——C语言基础 scanf函数 基本运算 三目运算符

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)scanf函数 1>  简单介绍一下scanf函数   这是在 ...

  9. 华为C语言编程规范

    DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd ...

随机推荐

  1. MongoDB学习笔记(7)--- 条件操作符

    描述 条件操作符用于比较两个表达式并从mongoDB集合中获取数据. 在本章节中,我们将讨论如何在MongoDB中使用条件操作符. MongoDB中条件操作符有: (>) 大于 - $gt (& ...

  2. appium简明教程(9)——如何获取android app的Activity

    有时候在appium的Desired Capabilities中需要指定被测app的appActivity,下面的方法可能会对你有所帮助. 方法一 如有你有待测项目的源码,那么直接查看源码就好.如果没 ...

  3. root用户Linux 环境变量的配置解决(-bash: jps: command not found)有关问题

    可以写成:$JAVA_HOME/bin 3. source /root/.bash_profile 发现 jps 等命令运行正常了

  4. Fix SCRIPT5009: “RegisterSod” undefined error

    When I set up development environment for apps for SharePoint 2013 and quickly get apps from SharePo ...

  5. 【转载】centos 安装及配置 mysql5.5.3 - rpm安装server和client

    安装 https://blog.csdn.net/cxy1238/article/details/2518480 1. 设置root用户的密码 方法一: # mysqladmin -u root -p ...

  6. android surfaceView 的简单使用 画图,拖动效果

    前面说到了画图,其实更好的就是使用 surfaceView了. surfaceView 继承于 View,View里面嵌套了一个专门用于画图的 surface, 对于一个View的onDraw()方法 ...

  7. Java:concurrent包下面的Map接口框架图(ConcurrentMap接口、ConcurrentHashMap实现类)

    Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合, ...

  8. untiy 2d游戏平面直角坐标系的旋转应用

    2d旋转的应用 1 :条件1 (已知) 创建一个平面直角坐标系 左上角为(0,0),能够把一个加入了UIPanel组件的物体(名字叫Father)移至UIRoot左上角 Y和Z轴都旋转180度.这样你 ...

  9. 文档 - STOMP Over WebSocket

    http://jmesnil.net/stomp-websocket/doc/ What is STOMP? STOMP is a simple text-orientated messaging p ...

  10. android源码编译-Mac 10.11 xcode5.1.1

    第一步: 参考官网:创建一个dmg,大小80g,这个要尽量大一点,40g感觉不够用:http://source.android.com/source/initializing.html 第二步:下载a ...