MATLAB打印99乘法表

这是我在上学校MATLAB选修课时,老师布置的实验。当时老师的想法是将99乘法表的结果存入矩阵输出就行,但是我觉得这是结果,并不是小学所学的99乘法表,由于我对MATLAB也不熟悉,但是以为要用元胞,后来觉得不行,最后用的二维字符数组写的。

代码

老师的想法

实现代码

下面展示一些 内联代码片

clc,clear
y = zeros(9);
for i = 1:9
    for j = 1:9
        if i >= j
            y(i,j) = i*j;
        else
            break;
        end
    end
end
y

结果

y =

 1     0     0     0     0     0     0     0     0
 2     4     0     0     0     0     0     0     0
 3     6     9     0     0     0     0     0     0
 4     8    12    16     0     0     0     0     0
 5    10    15    20    25     0     0     0     0
 6    12    18    24    30    36     0     0     0
 7    14    21    28    35    42    49     0     0
 8    16    24    32    40    48    56    64     0
 9    18    27    36    45    54    63    72    81

我的想法

实现代码

下面展示一些 内联代码片

clc,clear
y = [];%创建二维字符空数组,用于存放99乘法表
n = 108;%字符数组的行大小定义
a = ' * ';%格式控制符号预设
b = ' = ';%格式控制符号预设
for i = 1:9%行数据
    t = 0;%行数据是否添加完成标志
    m = '';%创建行空数组
    for j = 1:9%列数据
       if i >= j%减少循环次数
           flag = i * j;%计算乘法值
           t = 1;
           m = [m, num2str(j)];%将j转换为字符串并存入m
           m = [m, a];
           m = [m, num2str(i)];%将i转换为字符串并存入m
           m = [m, b];
           if flag / 10 >= 1%判断乘法值是否为两位数,控制字符串格式
               m = [m, num2str(flag)];
           else
               m = [m, ' '];
               m = [m, num2str(flag)];
           end
           m  = [m, '  '];%控制两个乘法数据的间距格式
       else
           if length(m) < n%填充行数据长度到n
               for k = 1:(n - length(m))
                   m = [m, ' '];
               end
           end
           break;%跳出循环,节约不必要的时间浪费
       end
    end
    if t == 1%判断每行数据添加完后,将行数据添加入二维字符数组的第i行
        y = [y; m];
    end
end
y%输出99乘法表

结果

在这里插入图片描述

启示

虽然自己代码比老师想法复杂了些,但是我觉得这样的结果更加准确,希望更多大佬指点。

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值