LinuxForum.Fans
Тема

программа для изображения геометрических фигур при помощи символов

Автор: serggeee 6 сообщений 1816 просмотров
#166709

я и зучаю я зык си по учебнику М. Уэйта и там даётся вот такая программа

text
#include <stdio.h>
int main( )
{
        int ch; /* переменная для ввода символа */
        int index;
        int chnum;

while ((ch=getchar( )) != '\n' ){ chnum - ch %26; /* получение числа от 0 до 25 */ index = 0; while (index++ < (30 - chnum)) putchar( ); /* печать пробелов сдвига к центру */ index = 0; while (index++ < (2 * chnum + 1)) putchar (ch); /* повторная печать символа */ putchar( '\n' ); } } ~ ~

Она читает символ, а затем печатает его некоторое число раз зависящее от кода ASCII этого символа и получается какаято фигура
Вот что получается при компиляции;
[serrggeee@localhost ~]$ g++ 1.cpp
/usr/include/stdio.h: In function ‘int main()’:
/usr/include/stdio.h:562: ошибка: too few arguments to function ‘int putchar(int)’
1.cpp:12: ошибка: в этом месте файла
[serrggeee@localhost ~]$
помогите разобраться

#166712
serggeee написал:

while (index++ < (30 - chnum))
putchar( ); /* печать пробелов сдвига к центру */

putchar(' ');

#166715

поставил кавычки в нутри скобок правда не понял для чего но компиляция проходит с ошибкой
[serrggeee@localhost ~]$ g++ 1.cpp
1.cpp:12:12: error: empty character constant
[serrggeee@localhost ~]$

#166721
serggeee написал:
1.cpp:12:12: error: empty character constant

хотя бы переводили, что вам компилятор пишет... пробел внутри кавычек забыли поставить...

#166722

у меня все компилируется... Хотя здесь похоже на опечатку:

text

  chnum - ch %26; /* получение числа от 0 до 25 */

Может тут "="

#166758

[console]$ ./f
abc
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
ccccccccccccccccccccccccccccccccccccccccccc
[/console]

text
#include <stdio.h>
int main( )
{
        int ch; /* переменная для ввода символа */
        int index;
        int chnum;

while ((ch=getchar()) != '\n' ) { chnum = ch %26; /* получение числа от 0 до 25 */ index = 0; while (index++ < (30 - chnum)) putchar(' '); /* печать пробелов сдвига к центру */ index = 0; while (index++ < (2 * chnum + 1)) putchar (ch); /* повторная печать символа */ putchar( '\n' ); } return 0; }

Войдите или зарегистрируйтесь, чтобы ответить.