Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
kolxoznik1
4 / 4 / 1
Регистрация: 28.03.2010
Сообщений: 94
1

Програма для вывода узора в виде звездочек

11.04.2010, 14:00. Просмотров 625. Ответов 2
Метки нет (Все метки)

Помогите написать программу на "C", использующую оператор goto, которая выводит на экран последовательность звездочек. Например, для числа 5 последовательность будет иметь вид:
Название: 269598d1e9bdt.jpg
Просмотров: 113

Размер: 3.1 Кб
Программа должна выполнять только следующие операторы (для языка C): printf(“*”); printf(“ ”); printf(“\n”);
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2010, 14:00
Ответы с готовыми решениями:

Составить программу для вывода на экран таблицы чисел в виде треугольника
Составить программы для вывода на экран таблицы чисел в виде: 5 4 3 2 ...

Составить программу для вывода на экран таблицы чисел в треугольном виде
Составить программы для вывода на экран таблицы чисел в виде: 7 7 7 7 6...

Составить программу для вывода на экран таблицы чисел в виде прямоугольника
Составить программы для вывода на экран таблицы чисел в виде: 1 1 1 1 ...

Оформление вывода в виде таблицы
Доброго времени суток. Хотелось бы оформит вывод в виде таблицы, а-ля матрицы...

Перегрузка оператора вывода в С++ (для вывода данных вектора)
Как правильно перегрузить оператор вывода для вектора чтобы он выводил все...

2
Telas
2 / 2 / 1
Регистрация: 10.01.2010
Сообщений: 52
12.04.2010, 12:21 2
Лучший ответ Сообщение было отмечено kolxoznik1 как решение

Решение

Я сделал вот так
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>
 
int main()
{
int i=0;
printf("*");
start0:
printf(" ");
printf(" ");
printf(" ");
printf(" ");
printf(" ");
printf(" ");
printf(" ");
printf(" ");
printf("*");
++i;
if (i<2)
goto start0;
else
printf("\n");
printf("*");
  printf(" ");
   printf("*");
   printf(" ");
   printf(" ");
   printf(" ");
   int  c=0;
start1:
   printf(" ");
   printf("*");
++c;
if (c<3) 
goto start1;
else
printf(" ");
printf(" ");
printf(" ");
printf(" ");
printf("*");
printf(" ");
printf("*");
printf("\n");
int d=0;
start2:
printf("*");
printf(" ");
d++;
if (d<9)
goto start2;
else
printf("*");
printf("\n");
int e=0;
start3:
printf("*");
++e;
if (e<19)
goto start3;
else
printf("\n");
end:
printf("\n");
return 0;
}
Только узор немного другой, но принцип тот же.
0
Nameless One
Эксперт С++
5786 / 3435 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
12.04.2010, 16:03 3
Задаешь число в строке 4.
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>
#include <stdlib.h>
 
#define num 4
 
int main(void)
{
    int current_row=1, current_col=1, current_sym=1, col_size=num-1, last_col=num+1;
decision:
    if(current_row>num)
        goto end;
    if(current_col==last_col)
    {
        if(((current_col&1)&&(current_row==1))||((!(current_col&1))&&(current_row==num)))
            goto asterisk;
        else
        {
            current_sym=1;
            current_col=1;
            goto newline;
        }
    }
    else if(current_sym%col_size==1)
        goto asterisk;
    else if(((current_row==1)&&(!(current_col&1)))||((current_row==num)&&(current_col&1)))
        goto asterisk;
    else goto space;    
asterisk:
    printf("*");
    ++current_sym;
    if(current_sym>col_size)
    {
        ++current_col;
        current_sym=1;
    }
    if((current_col==last_col)&&(current_sym==2))
    {
        current_sym=1;
        current_col=1;
        goto newline;
    }
    goto decision;
space:
    printf(" ");
    ++current_sym;
    if(current_sym>col_size)
    {
        ++current_col;
        current_sym=1;
    }
    if((current_col==last_col)&&(current_sym==2))
    {
        current_sym=1;
        current_col=1;
        goto newline;
    }
    goto decision;
newline:
    printf("\n");
    ++current_row;
    goto decision;
end:
    system("pause");
    return 0;
}
Не знаю как и почему, но вроде работает:
http://codepad.org/7J8zKcDI

ЗЫ. Не имеет смысла задавать константу num меньше 3 (будет зацикливание). А если задать больше 9, то строка не влезет в стандартную ширину буфера консоли в 80 символов.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2010, 16:03

Програма для диплома
Здраствуйте, как видно по теме мне нужно зделать програму для диплома програма...

Написать программу, которая должна включать функции для: - вывода шапки таблицы; - вывода данных одной строки
Написать программу, которая должна включать функции для: - вывода шапки...

Напишите программу считывания числа и вывода его в виде *


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru