今天刚学PL/SQL 老师让打印一个菱形,真难弄,奋战N小时终于搞完,呵呵。
虽然有点初级,不过也有点兴奋,成功的第一步,呵呵。
我考虑的菱形形状:
*
***
*****
*******
*********
***********
*********
*******
*****
***
*
分析:这玩意的行数需要是奇数的
立即coding!
本人初学PL/SQL,写的程序用JAVA思想。。。可能还有更好的PL函数没用到,希望大牛们不要笑话。
最后,欢迎大牛们进行优化,谢谢。
虽然有点初级,不过也有点兴奋,成功的第一步,呵呵。
我考虑的菱形形状:
*
***
*****
*******
*********
***********
*********
*******
*****
***
*
分析:这玩意的行数需要是奇数的
立即coding!
declare
v_l number:=&请输入行数(奇数);--命名方式:变量_行数
v_c number;--控制打印*的个数 命名方式:变量_字符数
v_s number;--控制打印的空格数 命名方式:变量_空格数
begin
if(v_l mod 2=0) then
dbms_output.put_line('请输入奇数!');
else
for i in 0..v_l-1
loop
--判断打印*的个数 和空格个数
if(i>v_l/2) then
v_c:=(v_l-i-1)*2+1; --根据最大行以上的各行个数来做 比如 打印五行 则第三行为中间数 第四行和第二行的个数相同 则只需计算出()*2+1 括号中的数字即可
v_s:=(v_l-v_c)/2; --根据行号和*的个数来做空格的个数
else
v_c:=i*2+1;
v_s:=(v_l-v_c)/2; --根据行号和*的个数来做空格的个数
end if ;
--打印空格的个数
for j in 1..v_s
loop
dbms_output.put(' ');
end loop;
--打印*的个数
for j in 1..v_c
loop
dbms_output.put('*');
end loop;
dbms_output.put_line('');
end loop;
end if;
end;
本人初学PL/SQL,写的程序用JAVA思想。。。可能还有更好的PL函数没用到,希望大牛们不要笑话。
最后,欢迎大牛们进行优化,谢谢。