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

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

Восстановить пароль Регистрация
 
kolxoznik1
4 / 4 / 0
Регистрация: 28.03.2010
Сообщений: 94
11.04.2010, 14:00     Програма для вывода узора в виде звездочек #1
Помогите написать программу на "C", использующую оператор goto, которая выводит на экран последовательность звездочек. Например, для числа 5 последовательность будет иметь вид:
Название: 269598d1e9bdt.jpg
Просмотров: 112

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

C++ програма для вычисления заданой функции
C++ Найти сумму первых 5 цифр дробной части действительного числа.например для числа 23,1680989 она равна 24.програма на С++
Программа для вывода картинок (карточки для изучения ин.яз) C++
Програма для диплома C++
C++ Програма для нахождения максимального повторения!
C++ Почему не работает цикл while для заполнения и do while для вывода массива?
C++ В виде дружественных функций выполните перегрузку вывода в поток
Реализовать все алгоритмы сортировки, оформив решение в виде функций ввода, вывода и обработки массивов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Telas
 Аватар для Telas
2 / 2 / 1
Регистрация: 10.01.2010
Сообщений: 52
12.04.2010, 12:21     Програма для вывода узора в виде звездочек #2
Я сделал вот так
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;
}
Только узор немного другой, но принцип тот же.
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
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 символов.
Yandex
Объявления
12.04.2010, 16:03     Програма для вывода узора в виде звездочек
Ответ Создать тему
Опции темы

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