Форум программистов, компьютерный форум CyberForum.ru

Ромб. Что не так написал? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Axiles1305
0 / 0 / 0
Регистрация: 21.07.2011
Сообщений: 20
11.09.2011, 12:13     Ромб. Что не так написал? #1
Что не так написал?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
void main()
{
     setlocale(LC_ALL, "RUS");
int a;
int b;
cout<<"Введите а:";
    cin>>a;
    b=(2*a)-1;
 
for (int d=0;d<a;d++){
    
for(int j=0;j<b;j++)
 
    if (j>=(a-d) && j<=(a+d))
             
    cout<<"*";
    else
     cout<<" ";
cout<<"\n";
 
}
 
for (int d=0;d<b;d++){
    
for(int j=0;j<b;j++)
 
    if (j>=d && j<(b-d))
             
    cout<<"*";
    else
     cout<<" ";
 
cout<<"\n";
}
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Чистый
Автор FAQ
 Аватар для Чистый
2572 / 1379 / 70
Регистрация: 08.09.2011
Сообщений: 3,705
Записей в блоге: 1
11.09.2011, 12:28     Ромб. Что не так написал? #2
а что должно получиться? Воспользуйтесь тегами для вставки кода...
Zverit
Уничтожитель печенек
 Аватар для Zverit
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
11.09.2011, 12:29     Ромб. Что не так написал? #3
Цитата Сообщение от Axiles1305 Посмотреть сообщение
void main()
int main()
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.09.2011, 12:33     Ромб. Что не так написал? #4
Цитата Сообщение от Axiles1305 Посмотреть сообщение
Что не так написал?
Вы хоть озвучили бы задачу или в чем проблема. Я вот тоже напишу, что не так написал: 2+2=0?

Добавлено через 1 минуту
А просто надо было пояснить, что это сложение в кольце вычетов http://www.cyberforum.ru/cgi-bin/latex.cgi?Z_4, поэтому 2+2=0.
Надо четко формулировать вопрос
Axiles1305
0 / 0 / 0
Регистрация: 21.07.2011
Сообщений: 20
11.09.2011, 12:41  [ТС]     Ромб. Что не так написал? #5
Цитата Сообщение от Thinker Посмотреть сообщение
Вы хоть озвучили бы задачу или в чем проблема. Я вот тоже напишу, что не так написал: 2+2=0?

Добавлено через 1 минуту
А просто надо было пояснить, что это сложение в кольце вычетов http://www.cyberforum.ru/cgi-bin/latex.cgi?Z_4, поэтому 2+2=0.
Надо четко формулировать вопрос
получается ромб, но кривой не много.В низ выводится нормально, а с верху почему то нет

Добавлено через 1 минуту
Цитата Сообщение от ITZver Посмотреть сообщение
int main()
int main не поможет
Zverit
Уничтожитель печенек
 Аватар для Zverit
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
11.09.2011, 12:46     Ромб. Что не так написал? #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
 using namespace std;
 
int main()
 {
 setlocale(LC_ALL, "RUS");
 int a;
 int b;
 
 cout<<"Введите a: ";
 cin>>a;
 b=(2*a)-1;
 
 for (int d=0; d<a; d++){
 
    for(int j=1; j<=b; j++)
 
       if (j>=(a-d+1) &&  j <=(a+d-1))
 
           cout<<"*";
        else
           cout<<" ";
           cout<<"\n";
 }
 for (int d=0; d<b; d++){
 
     for(int j=0; j<b; j++)
 
         if (j>=d && j<(b-d))
 
            cout<<"*";
        else
            cout<<" ";
 
  cout<<"\n";
 }
 }
-=ЮрА=-
Заблокирован
Автор FAQ
11.09.2011, 13:01     Ромб. Что не так написал? #7
Цитата Сообщение от Axiles1305 Посмотреть сообщение
Что не так написал?
Вот подправил твой код,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
void main()
{
    int a;
    int b;
    int d,j;
    cout<<"Enter a:";
    cin>>a;
    b=(2*a) - 1;
 
    for (d=0;d < a;d++)
    {
        for(j=0;j<=b;j++)
        if (j>=(a-d) && j<=(a+d))
            cout<<"*";
        else
            cout<<" ";
        cout<<"\n";
    }
 
    for (d=1;d<b;d++)
    {
        cout<<" ";
        for(j=0;j<=b;j++)
        if (j>=d && j<(b-d))
            cout<<"*";
        else
            cout<<" ";
        cout<<"\n";
    }
    getch();
}
На мой взгляд тяжеловесные условия
C++
1
if (j>=(a-d) && j<=(a+d))
, можно проще + всё в 2-х циклах надо делать
Изображения
 
-=ЮрА=-
Заблокирован
Автор FAQ
11.09.2011, 13:06     Ромб. Что не так написал? #8
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
можно проще + всё в 2-х циклах надо делать
Как и здесь Помогите плиз, как вывести это чудо на экран?
ромб разваем на 4-ри прямоугольных треугольника и их рисуем, так легче делань чем такие конструкции делать
C++
1
if (j>=(a-d) && j<=(a+d)) if (j>=d && j<(b-d))
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
11.09.2011, 13:09     Ромб. Что не так написал? #9
Цитата Сообщение от ITZver Посмотреть сообщение
int main()
А вот ты перевёл на integer, а вот return в конце забыл.
Умник, такой умник /facepalm.
Какая разница то , а main вообще не должна возвращать что то.
-=ЮрА=-
Заблокирован
Автор FAQ
11.09.2011, 13:10     Ромб. Что не так написал? #10
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
for (d=1;d<b;d++)
* * * * {
* * * * * * * * cout<<" ";
вкратце об этом, в первых 2-х for уже выведена половина ромба - его основание - малая диагональ, если начнёмс неё вывод получим 2-ную диагональ, вобщем чтото типа этого

---*
--***
--***
---*

Поэтому малую диагональ выводить уже нет необходимости, начинаем со следующей строки d=1, однако это приведёт к сдвигу в пробелах вначале строки поэтому ввожу дополнительный вывод пробела cout<<" ";
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.09.2011, 13:11     Ромб. Что не так написал? #11
Цитата Сообщение от res Посмотреть сообщение
А вот ты перевёл на integer, а вот return в конце забыл.
Умник, такой умник /facepalm.
Какая разница то , а main вообще не должна возвращать что то.
По стандарту main обязан возвращать int, и по стандарту же необязательно писать return.
gcc, к примеру, void main() вообще не компилирует, т.к. фактически это грубая ошибка.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
11.09.2011, 13:14     Ромб. Что не так написал? #12
в видовс может и не возвращать, ничего не будет. в других системах если возвращать ненулевой код, будет реакция.

Добавлено через 38 секунд
Цитата Сообщение от diagon Посмотреть сообщение
а вот return в конце забыл.
можно и не возвращать

Добавлено через 1 минуту
у страуструпа написано, что последняя строка main равноправна return
-=ЮрА=-
Заблокирован
Автор FAQ
11.09.2011, 13:16     Ромб. Что не так написал? #13
Цитата Сообщение от res Посмотреть сообщение
А вот ты перевёл на integer, а вот return в конце забыл.
- старые компиляторы на это да ругаются, но как отметил diagon,
Цитата Сообщение от diagon Посмотреть сообщение
По стандарту main обязан возвращать int, и по стандарту же необязательно писать return.
- это суровые реалии жизниХотя мне для себя не понятно, зачем же было в стандарте дефалтно опускать возврат, подраумевая что в норм случае мэйн нолик вернёт, а в случае ошибки возврат будет из середины тела мэйна, имхо void main аналогично работает
Zverit
Уничтожитель печенек
 Аватар для Zverit
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
11.09.2011, 13:20     Ромб. Что не так написал? #14

Не по теме:

res, "Мы совершаем ошибки, мы все это делаем..."



Добавлено через 1 минуту
diagon, спасибо за разъяснение
Даже сам не знал. Просто, как помню, компилятор всегда ругался. Да вроде, как, и принято писать int.
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
11.09.2011, 13:58     Ромб. Что не так написал? #15
Цитата Сообщение от diagon Посмотреть сообщение
По стандарту main обязан возвращать int, и по стандарту же необязательно писать return.
gcc, к примеру, void main() вообще не компилирует, т.к. фактически это грубая ошибка.
По стандарту main возвращает что то? Это же бессмысленно.

К примеру, компилятор который написал мой знакомый, возвращает даже конструктор.
to code monkeys
внимание, сраказм.
Zverit
Уничтожитель печенек
 Аватар для Zverit
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
11.09.2011, 14:03     Ромб. Что не так написал? #16
Цитата Сообщение от res Посмотреть сообщение
По стандарту main возвращает что то?
А вы разве не знали? main возвращает число для вызывающего процесса.

Не по теме:

Как вы могли такое упустить...

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2011, 14:04     Ромб. Что не так написал?
Еще ссылки по теме:

Обратная польская запись.Написал программу по алгоритму.Нужно кое-что изменить C++
Написал программу, но она что-то не совсем то, выдает, не могу понять в чем проблема C++
Написал программу по смене слов в строке, но нужно что бы можно было вводить слова с клавиатуры.Что нужно ? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.09.2011, 14:04     Ромб. Что не так написал? #17
Цитата Сообщение от res Посмотреть сообщение
По стандарту main возвращает что то? Это же бессмысленно.
Ну так претензии к стандарту, не?
Никто заставляет вас писать int main(). Такой код всего-лишь не будет компилироваться на половине компиляторов, включая gcc. Но если для вас это не проблема - пишите как хотите.
Yandex
Объявления
11.09.2011, 14:04     Ромб. Что не так написал?
Ответ Создать тему
Опции темы

Текущее время: 10:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru