-1.7*10(-308)~1.7*10(308),如果两个数的乘积不超过这样的精度,可以直接使用*符号进行运算。
参考代码:
#include<stdio.h>
int main()
{
double a,b
scanf("%lf%lf",&a,&b)
printf("%.2lf",a*b)//保留两位小数
return 0
}
/*
运行结果:
1205 5985
7211925.00
*/
本文所用思想是在9行9列方形乘法表的基础上“切割”得到左上、右上、左下、右下四种形态的九九乘法表。最后使用switch-case语句对四种形态的九九乘法表进行整理以完善程序。首先,我们嵌套两个for循环语句得到一个方形的九九乘法表。得到的九九乘法表方形块如下。下一步,我们对方形块进行“切割”,这里我们以左下乘法表为示例。
由图我们可以添加两条约束:1.左下乘法表打印斜边的边界条件为i等于j(本文打印顺序为i×j),即当i>=j时,乘法式显示,当i2.换行条件为j==9;同理,我们可以得到右上乘法表。但是当我们想要切割左上和右下乘法表时,可以发现缺少了部分乘法公式。
九九乘法表共9行9列,重点考察for循环的掌握情况。下面给出了输出完整乘法表、右上、右下、左上、左下乘法表的代码。
1、【代码一】输出完整的三角形:
#include <stdio.h>
int main() {
int i,j // i, j控制行或列
for(i=1i<=9i++) {
for(j=1j<=9j++)
// %2d 控制宽度为两个字符,且右对齐;如果改为 %-2d 则为左对齐
// \t为tab缩进
printf("%d*%d=%2d\t", i, j, i*j)
printf("\n")
}
return 0
}
2、【代码二】输出右上三角形和左上三角形:
#include <stdio.h>
int main() {
int i,j
for(i=1i<=9i++){
for(j=1j<=9j++){
if(j<i)
//打印八个空格,去掉空格就是左上三角形
printf(" ")
else
printf("%d*%d=%2d ",i,j,i*j)
}
printf("\n")
}
return 0
}
3、【代码三】输出右下和左下三角形:
#include <stdio.h>
int main(){
int i,j,n
for(i=1i<=9i++){
// 将下面的for循环注释掉,就输出左下三角形
for(n=1n<=9-in++)
printf(" ")
for(j=1j<=ij++)
printf("%d*%d=%2d ",i,j,i*j)
printf("\n")
}
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)