| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 591 人关注过本帖
标题:求助~~为什么我的程序当n>=10的时候就不对了呢?
只看楼主 加入收藏
dreameds
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2005-12-19
收藏
 问题点数:0 回复次数:7 
求助~~为什么我的程序当n>=10的时候就不对了呢?
请问为什么当我输入的直大于10,输出的结果就不是一个正方形了呢?
应该怎样解决呢?





public class Zhengfangxing {
public static void main(String[] args)
{ int n=5;
System.out.print("请输入边长");
try
{
n=System.in.read()-'0';
}
catch(Exception e)
{
}
for(int i=1;i<=n;i++)
{
System.out.print('*');
}
System.out.println();
for(int j=1;j<=n-2;j++)
{
System.out.print('*');
for(int k=1;k<=n-2;k++)
{
System.out.print(" ");
}
System.out.print('*');
System.out.println();
}
for(int l=1;l<=n;l++)
{
System.out.print('*');
}
}
}
搜索更多相关主题的帖子: System int public args 
2005-12-23 19:42
dreameds
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2005-12-19
收藏
得分:0 

而我这个为什么会
请输入边长4
****
* *
* *
****
请输入边长

请输入边长

请输入边长
我只是想让他打出来正方形的时候再出现"请输入边长"
为什么会出现3个呢?
请高手帮忙解决一下~~不胜感激

public class Zhengfangxing {
public static void main(String[] args)
{
M:
for(int x=0;x<=1000;x++)
{
int n=5;
System.out.print("请输入边长");
try
{
n=System.in.read()-'0';
}
catch(Exception e)
{
}
for(int i=1;i<=n;i++)
{
System.out.print('*');
}
System.out.println();
for(int j=1;j<=n-2;j++)
{
System.out.print('*');
for(int k=1;k<=n-2;k++)
{
System.out.print(" ");
}
System.out.print('*');
System.out.println();
}
for(int l=1;l<=n;l++)
{
System.out.print('*');
}
System.out.println();
continue M;
}
}
}


2005-12-23 19:54
bagger
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:33
帖 子:891
专家分:0
注 册:2005-8-16
收藏
得分:0 

还是和system.in.read();有关,我这次帮你彻底解决问题了!也是参照别人的程序!
嘿嘿!献丑了!代码写得非常好!我是这么觉得!
程序如下:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class keyboard
{
private static String getEingabe()
{
String eingabe;
BufferedReader reader;
reader = new BufferedReader( new InputStreamReader( System.in ) );
try
{
eingabe = reader.readLine();
return eingabe;
}
catch ( IOException e )
{
e.printStackTrace();
}
return null;
}

public static int getInteger()
{
String eingabe = getEingabe();
int zahl = Integer.parseInt( eingabe );
return zahl;
}

}

class test{
public static void main(String [] args)
{

System.out.print("请输入边长");

int n;
keyboard kb = new keyboard();

n=keyboard.getInteger();


for(int i=1;i<=n;i++)
{
System.out.print('*');
}
System.out.println();
for(int j=1;j<=n;j++)
{
System.out.print('*');
for(int k=1;k<=n-2;k++)
{
System.out.print(" ");
}
System.out.print('*');
System.out.println();
}
for(int l=1;l<=n;l++)
{
System.out.print('*');
}

}
}

调试运行都正确!


【三元毕业设计论文】
三元论文真的只有三元钱
客服QQ:742670649
http://shop35094218./
2005-12-24 13:04
dreameds
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2005-12-19
收藏
得分:0 
十分感谢

可是我更是一头雾水了
你前面那一大段实现getinteger的方法实在是另我费解
能给我解释一下吗?

2005-12-24 13:45
dreameds
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2005-12-19
收藏
得分:0 
而且我的第二个问题还没有解决...
我怎么这么烦,我的问题怎么这么多...
烦我不要紧,帮我解决问题,我仍感激你

2005-12-24 13:54
bagger
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:33
帖 子:891
专家分:0
注 册:2005-8-16
收藏
得分:0 

已经全都解决了啊!包括读取正方形边长和输出!
有什么问题最好还是加我QQ!
这里不方便!
太麻烦了!


【三元毕业设计论文】
三元论文真的只有三元钱
客服QQ:742670649
http://shop35094218./
2005-12-24 14:00
bagger
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:33
帖 子:891
专家分:0
注 册:2005-8-16
收藏
得分:0 
getinteger是private的,这主要是出于安全性考虑!做了一个技术上的处理!
只解决问题是第一步的,如果能提高安全性不是更好吗!嘿嘿!

【三元毕业设计论文】
三元论文真的只有三元钱
客服QQ:742670649
http://shop35094218./
2005-12-24 14:03
雨夜黑黑
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2005-12-20
收藏
得分:0 

我这里有一个小程序可以解决该问题------代码如下:
import java.awt.*;
import java.applet.*;
import java.awt.Color;
public class bc extends Applet
{
Label l;
TextField tf;
int n=0;
public void init()
{
l=new Label("请输入正整数:");
tf=new TextField(6);
add(l);
add(tf);
}
public boolean action(Event e ,Object o)
{
n=Integer.parseInt(o.toString());
repaint();
return(true);
}
public void paint(Graphics g)
{
if(n>=20)
{ for(int i=0;i<n;i++)
{g.drawString("*",20+i*10,50);}
for(int j=0;j<n-2;j++)
{
g.drawString("*",20,60+j*10);
for(int i=0;i<n-2;i++)
{g.drawString(" ",30+10*i,60+10*j);}
g.drawString("*",30+10*(n-2),60+10*j);
}
for (int i=0;i<n;i++ )
{
g.drawString("*",20+10*i,60+10*(n-2));
}
}
if(n>=2)
{
for(int i=0;i<n;i++)
{g.drawString("*",20+i*10,50);}
for(int j=0;j<n-2;j++)
{
g.drawString("*",20,60+j*10);
for(int i=0;i<n-2;i++)
{g.drawString(" ",30+10*i,60+10*j);}
g.drawString("*",30+10*(n-2),60+10*j);
}
for (int i=0;i<n;i++ )
{
g.drawString("*",20+10*i,60+10*(n-2));
}
}
else
{
String s1="请输入大于1的整数!";
g.setFont(new Font("华文行楷",Font.PLAIN,40));
g.setColor(Color.red);
g.drawString(s1,30,75);

}
}
}
他的html代码为
<HTML>
<HEAD>
<TITLE> bcd </TITLE></HEAD>
<BODY>
<applet code=bcd.class width=400 height=400></applet>
</BODY>
</HTML>
你可以看看,很简单的了

2005-12-26 09:57
快速回复:求助~~为什么我的程序当n>=10的时候就不对了呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017367 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved