|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.10.2011, 13:40 | #1 |
Пользователь
Регистрация: 14.10.2011
Сообщений: 13
|
Найдите,пжл, ошибку в коде Java
Необходимо написать программу, которая выводила бы на экран такой ромб вот в таком виде:
public class Diamond { public static void main(String[] args) { int N = Integer.parseInt(args[0]); for (int i = -N; i <= N; i=i+1) { for (int j = -N; j <= N; j++) { if (Math.abs(i) + Math.abs(j) <= N) System.out.print("* "); else System.out.print(" "); } System.out.println(); } } } у меня ошибка, и я не понимаю где. Пожалуйста, помогите. |
14.10.2011, 13:58 | #2 |
Пользователь
Регистрация: 16.10.2010
Сообщений: 48
|
а что пишет? какая ошибка?..ты импорты подключил все? или ромб не получается? тогда пропробуй так System.out.print("*");
Последний раз редактировалось Алек; 14.10.2011 в 17:42. |
14.10.2011, 23:03 | #3 |
Пользователь
Регистрация: 14.10.2011
Сообщений: 13
|
ошибка вот в чем
если запустить это через командную строку и всвести значение, то левая часть ромба- нормальная, а вот справа она получается вытянутой, то есть далеко не симметричной правой стороной |
14.10.2011, 23:05 | #4 |
Пользователь
Регистрация: 14.10.2011
Сообщений: 13
|
компилятор ошибки не выдает
при запуске программы выпадает ошиба- исключения... блаблабл. что то там про то что значение выходит за границу массива. код ошибки 3. вот как то так |
15.10.2011, 09:49 | #5 |
Пользователь
Регистрация: 16.10.2010
Сообщений: 48
|
это получается из-за System.out.print("* "); если сделать так System.out.print("*"); то нормальный ромб выведет. а лучше всего действительно не через командную строку N вводить, а по умолчанию ей какое-то значение дать.
|
15.10.2011, 11:32 | #6 |
Пользователь
Регистрация: 16.10.2010
Сообщений: 48
|
вот вроде работает..если я верно понял твое задание.
import java.io.*; /** * * @author SASHA */ public class Main { /** * @param args the command line arguments */ public static void main (String args []) throws Exception { BufferedReader d = new BufferedReader(new InputStreamReader(System.in)); String a = d.readLine(); try { int N = Integer.parseInt(a); for (int i = -N; i <= N; i++) { for (int j = -N; j <= N; j++) { if (Math.abs(i) + Math.abs(j) <= N) System.out.print("*"); else System.out.print(" "); } System.out.println(); } } catch(Exception e) {System.out.println("Error translating text to int");} } } |
15.10.2011, 22:40 | #7 |
Пользователь
Регистрация: 14.10.2011
Сообщений: 13
|
а можно как то без исключений? а то мы их еще не проходили особо. это будет совсем не похоже на студ работу. "*"- все равно кривой ромб получается...
|
18.10.2011, 11:13 | #8 |
Пользователь
Регистрация: 16.10.2010
Сообщений: 48
|
без исключения, вроде бы нельзя, т.к. оно и выдает ошибку-не обработано исключение...а ромб нормальный вот принскрин-посмотри.
|
19.10.2011, 00:01 | #9 |
Пользователь
Регистрация: 14.10.2011
Сообщений: 13
|
большое спасибо
|
19.10.2011, 09:30 | #10 |
Пользователь
Регистрация: 14.10.2011
Сообщений: 13
|
а теперь надо написать программу для параллелограмма.
три пробела,потом 4 звезды два пробела, потом 4 звезды один пробел,потом 4 звезды ноль пробелов, потом 4 звезды и тоже через циклы, но без исключений и что тогда делать?) |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найдите ошибку в маленьком коде | Crabobass | Помощь студентам | 3 | 07.03.2011 09:41 |
Найдите косяк в коде | Kingcss | Общие вопросы Delphi | 2 | 02.01.2011 08:35 |
Найдите ошибку в коде | Arch0000 | Общие вопросы C/C++ | 0 | 29.05.2010 07:32 |
найдите ошибку в коде | TopoRRR | Помощь студентам | 6 | 15.12.2009 10:30 |
найдите ошибку в коде | pony | Помощь студентам | 1 | 14.09.2009 10:03 |