算法提高 乘法运算  
时间限制: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. 构建基于阿里云OSS文件上传服务

    转载请注明来源:http://blog.csdn.net/loongshawn/article/details/50710132 <构建基于阿里云OSS文件上传服务> <构建基于OS ...

  2. 跟我学SharePoint 2013视频培训课程—— 版本控制以及内容审批(14)

    课程简介 第14天,怎样在SharePoint 2013中启用版本控制以及内容审批 视频 SharePoint 2013 交流群 41032413

  3. Android_Bitmap_图片的二次采样并生成缩略图

    1.Bitmap概述 Android系统支持几种图片(.png (preferred), .jpg (acceptable), .gif (discouraged)), 其中Bitmap位图#ffff ...

  4. shell curl 下载图片并另存为(重命名)

    curl -o fuck.png http://img30.360buyimg.com/imgzone/jfs/t19711/232/1837927836/150222/e4cd87bb/5ad990 ...

  5. processing fill()和stroke()函数

    在procesiing有两个基本的函数,fill()和stroke()函数,这两个函数分别用来控制形状填充颜色和形状轮廓的颜色,fill()和stroke()可以接受的参数的个数为1,2,3.当参数的 ...

  6. php分享二十六:支付系统设计

    一个典型PHP支付系统的设计与实现 参考:blog.sina.com.cn/s/blog_81f6205801017ec8.html 微信支付开发: http://www.cnblogs.com/tx ...

  7. IOS 入门开发之创建标题栏UINavigationBar的使用

    转自:http://xys289187120.blog.51cto.com/3361352/685746 IOS 入门开发之创建标题栏UINavigationBar的使用     IOS 开发有关界面 ...

  8. 逆向project实战--Acid burn

    0x00 序言 这是第二次破解 crackme 小程序,感觉明显比第一次熟练.破解过程非常顺利,差点儿是分分钟就能够找到正确的 serial,可是我们的目标是破解计算过程.以下将具体介绍. 0x01 ...

  9. update set where exists 多表更新 在mssql、MySQL、Oracle中分别用法

    MySQL: UPDATE ChgCfm t1 INNER JOIN tb_dz_file t2 ON t1.ID = t2.ID ' SQLserver: FROM ChgCfmRcd t1 ' F ...

  10. VS2012高亮显示当前行背景色的问题

    在VS2012中,如果你不幸用了三方主题,尤其是深色主题.比如http://studiostyl.es/schemes/son-of-obsidian ,那么你很可能发现当前行高亮的样式变成了这样: ...