打印一个镂空的矩形

问题描述

有个题让打印一个镂空的矩形我打算输出一个有4行,第一行跟第4行有5个*号,中间两行为前后各一个*组成一个镂空的矩形,但是结果却有偏差,大家可以复制下面我写的代码帮我看下,中间的两行有问题。因为本人才初学,写的代码可能很硬编,希望高手帮我改下,或者有更好的方法教我一下。不要用太难的方法,我只会FOR循环。谢谢了啊、inti=1,j,k;for(;i<=4;i++){if(i==1||i==4){for(j=1;j<=5;j++)System.out.print("*");}else{for(k=1;k<=5;k++){if(k==1||k==5){System.out.print("*");System.out.print("");}}}System.out.println();}//执行的结果成这样了:**************分不多,见谅啊。

解决方案

解决方案二:
额,我代码写的很规范的,复制后发表怎么变成这样了。。。
解决方案三:
if(k==1||k==5){System.out.print("*");}else{System.out.print("");}}
解决方案四:
。。。。。。楼上的太感谢了,这么低级的错误我都没找到。。。。
解决方案五:
for(inti=0;i<4;i++){for(intj=0;j<5;j++){if(i==0||i==3){System.out.print("*");}else{if(j==0||j==4){System.out.print("*");}else{System.out.print("");}}}System.out.println();}

算法没问题,是空格和*所占像素多少引起的,中间空的个数是3个
解决方案六:
引用1楼panettone的回复:

额,我代码写的很规范的,复制后发表怎么变成这样了。。。

CSDN发帖,你可以选用代码格式,就在字体颜色的右边
解决方案七:
引用4楼random0406的回复:

Javacodefor(inti=0;i<4;i++){for(intj=0;j<5;j++){if(i==0||i==3){System.out.print("*");}else{……

这个好点,只定义i,j就可以了
解决方案八:
for循环,自己试着多走几遍程序,顺一会就会发现问题的。
解决方案:

publicclassTEXT{publicstaticvoidmain(String[]args){finalintline=7,semi=line/2;for(inti=0,k=line*line;i<k;i++){introw=i/line;intcol=i%line;if(col==0&&i>0){System.out.println();}System.out.print(Math.abs(semi-col)>semi-Math.abs(semi-row)?'*':'');}}}
解决方案:

publicclassTEXT{publicstaticvoidmain(String[]args){finalintline=7,semi=line/2;for(inti=0,k=line*line;i<k;i++){introw=i/line;intcol=i%line;if(col==0&&i>0){System.out.println();}System.out.print(Math.abs(semi-col)>semi-Math.abs(semi-row)?'*':'');}}}

解决方案:
呵呵学习了照着做了一遍

时间: 2024-09-24 22:34:12

打印一个镂空的矩形的相关文章

Java小例子:打印一个金字塔

这是最基础的例子了,每个初学者都会要做这个题目.这个题目的目的是熟悉循环特 别是嵌套循环的使用.但是如果对 Java 足够熟悉,回头来再写这个程序,就完全不是这 么写的了. 嵌套循环是非常复杂的逻辑.特别是写得很长的嵌套循环,一个不小心把 j 写成 i, 就够你调试半天的.所以嵌套循环应该尽量避免.怎么避免?将内部循环提取成一个方法 .这样每个方法里都只有一层循环,容易看,容易改,而且不容易出错. import java.util.Arrays; /** * 打印一个字符组成的金字塔 */ pu

php打印一个边长为N的实心和空心菱型的方法

 这篇文章主要介绍了php打印一个边长为N的实心和空心菱型的方法,实例分析了php循环语句绘制图形的技巧,需要的朋友可以参考下     本文实例讲述了php打印一个边长为N的实心和空心菱型的方法.分享给大家供大家参考.具体分析如下: 实心菱型计算方法: $n:边长 $i:当前行,0开始 $rows:总行数 上部 前面空格数=$n-$i-1 字符数=$i*2+1 下部 前面空格数=$i-$n+1 字符数=($rows-$i)*2-1 使用 str_pad 可以减少for/while等循环   代码

java 打印-java如何打印一个URL中的内容

问题描述 java如何打印一个URL中的内容 求教如何用java的api,打印一个动态网页,比如报表? 注意是非客户端打印,不用js 解决方案 内嵌一个浏览器引擎. 解决方案二: HttpURLConnection.getResponseMessage拿到string再用htmlparser解析http://htmlparser.sourceforge.net

超过范围-C如何打印一个超过int范围值的数?

问题描述 C如何打印一个超过int范围值的数? 就比如int i = 100000000000000000: 如何打印出来? 解决方案 超出了范围,你都不能赋值了,还考虑打印. C,只是语言,int 能存多大的数值要看使用它的平台.例如:Dos 时 int 是两个字节,但 Windows 平台下就是 4 个字节的.明显可存贮的数值大了很多. 在 Windows 平台下还有很多更大的数值类型,如:LONGLONG,64位整数分别叫做__int64与unsigned __int64,范围为 -2^6

vb6.0-VB6.0系统中打印一个平行四边形,用button1_click两个循环实现,请问怎么做?

问题描述 VB6.0系统中打印一个平行四边形,用button1_click两个循环实现,请问怎么做? VB6.0系统中打印一个平行四边形,用button1_click两个循环实现,请问怎么做? 解决方案 for i = 1 to 5 print tab(i); for j = 1 to 5 pirnt "*"; next print "" next

c语言-C语言打印一个由星号组成的等腰三角形怎么做?我只会打印直角三角形。

问题描述 C语言打印一个由星号组成的等腰三角形怎么做?我只会打印直角三角形. C语言打印一个由星号组成的等腰三角形怎么做?我只会打印直角三角形. 解决方案 http://jingyan.baidu.com/article/d169e186446a46436611d881.html

怎样使用gtk+编写一个实心红色矩形从屏幕左边运动到右边?

问题描述 怎样使用gtk+编写一个实心红色矩形从屏幕左边运动到右边? 怎样ubuntu下使用gtk+编写一个实心红色矩形从屏幕左边运动到右边的程序,求熟悉的人写下,谢谢!

java-Java 打印一个空心加号,要用parameter还有布尔来判断

问题描述 Java 打印一个空心加号,要用parameter还有布尔来判断 This method is used to print items to the screen. It should take in two parameters: a. Number of items (int) b. Item to print (String) Notice that the top arm and the bottom arm of your plus sign are almost ident

用VB怎么在视频窗口上画一个透明的矩形。

问题描述 我用VB做了一个摄相头的视频窗口,我想在这个窗口上画一个透明的矩形,怎么实现,望高手指点.最好有源代码,我的EMAIL是:hlhelei@163.com 解决方案 解决方案二:大哥们,帮帮忙呀解决方案三:怎么没人回答呀解决方案四:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimGraphicsAsNewSystem.Drawing.Dra