Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Вопрос по языку Си

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Вопрос по языку Си
Имя
Сообщение << Старые топики   Новые топики >>
Вопрос по языку Си - 2011-07-30 21:48:42.020000   
code_maker

Сообщений: 27
Оценки: 0
Присоединился: 2011-07-24 17:46:28.343333
Задача.
Есть код который с помощью вложенных циклов позволяет печатать в консоли текст:
ABCDEF
BCDEF
CDEF
DEF
EF
F

/* rows2.c -- использование зависимых внутренних циклов */ #include &lt;stdio.h&gt; int main(void) { &nbsp;&nbsp;&nbsp; const int ROWS = 6; &nbsp;&nbsp;&nbsp; const int CHARS = 6; &nbsp;&nbsp;&nbsp; int row; &nbsp;&nbsp;&nbsp; char ch; &nbsp;&nbsp;&nbsp; for (row = 0; row &lt; ROWS; row++) &nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (ch = ('A' + row); ch &lt; ('A' + CHARS); ch++) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%c", ch); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("\n"); &nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp; return 0; } Нужно сделать так чтобы с помощью вложенных циклов генерировался текст:
F
FE
FED
FEDC
FEDCB
FEDCBA
И ещё вот такой:
      A
    ABA
   ABCBA
  ABCDCBA
ABCDEDCBA

Это задания по Си в которых сам не смог разобраться.Буду благодарен за помощь.

Post #: 1
RE: Вопрос по языку Си - 2011-07-30 22:32:18.480000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
Тебе же уже решали такую задачу. Ты безнадёжен. Признай это, и признайся в этом преподу. Получи законную 2, и не выноси нам мозг.
Post #: 2
RE: Вопрос по языку Си - 2011-07-30 23:42:17.330000   
code_maker

Сообщений: 27
Оценки: 0
Присоединился: 2011-07-24 17:46:28.343333
А мне не достаточно и та задача была намного проще.Препод тут не при чём я для себя разбираюсь.Оценки у меня оцениваются не цифрами а А B C D E Fx F :D.И задача не представляет из себя вынос мозга, просто для меня принципиально разобраться с циклами в Си.Задача выносит мозг только тому кто в ней не разбирается вроде меня.Взята из книги Стивена Праты "Язык программирования Си" 4-е издание.
Post #: 3
RE: Вопрос по языку Си - 2011-07-31 00:07:13.853333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: code_maker
Препод тут не при чём я для себя разбираюсь.

Тем более забей. Если тебе здесь опять напишут готовое решение, то это никак не поможет тебе разобраться с циклами. Я проверял это на многих, и не только на форумах. Помогает разобраться лишь личное мозговое усилие учащегося, приведшее к успеху, хотя бы к частичному успеху. Всё остальное не влияет абсолютно.
Ты пока не продемонстрировал ни одного успеха своей мыслительной деятельности. Ты не сдвинулся в своих "разбирательствах" ни на миллиметр. Ты безнадёжен.
quote:

ORIGINAL: code_maker
Оценки у меня оцениваются не цифрами а А B C D E Fx F

Какая из них самая неудовлетворительная? Вот её и поставь себе в зачётку.
quote:

ORIGINAL: code_maker
Задача выносит мозг только тому кто в ней не разбирается вроде меня.

Ну да. Ты выносишь мозг себе этой задачей. А нам ты выносишь мозг, прося порешать задачки для детского сада. Это скучно и неинтересно.
Post #: 4
RE: Вопрос по языку Си - 2011-07-31 13:01:15.920000   
code_maker

Сообщений: 27
Оценки: 0
Присоединился: 2011-07-24 17:46:28.343333
quote:

ORIGINAL: rgo
Ну да. Ты выносишь мозг себе этой задачей. А нам ты выносишь мозг, прося порешать задачки для детского сада. Это скучно и неинтересно.

Если эта задача для детского сада, почему ты и никто не можешь мне с ней помочь?Это какие-то взаимоисключающие параграфы xDDD.Более того никому не выносят мозг такие вопросы на форуме вроде:"Сделай чит для игрушки", "Как присобачить капчу","Помоги сделать многопоточный чат","Сгенери гигантское Пи на Паскале","как юзать хттп я хочу сделать шайтан-сплойт" и все на них всегда оч. корректно отвечают xD.
З.Ы. я думал что пришёл на форум на котором помогают разчёхлится, а не обсерают того кто пытается перестать быть ламером бесконечно.
Post #: 5
RE: Вопрос по языку Си - 2011-07-31 15:11:09.610000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: code_maker
quote:

ORIGINAL: rgo
Ну да. Ты выносишь мозг себе этой задачей. А нам ты выносишь мозг, прося порешать задачки для детского сада. Это скучно и неинтересно.

Если эта задача для детского сада, почему ты и никто не можешь мне с ней помочь?Это какие-то взаимоисключающие параграфы xDDD.

Нисколько не исключающие. Genco тебе уже помог с одной задачей. К чему это привело? К тому что ты выложил ещё две. Если я напишу тебе эти две, ты выложишь ещё десяток. Да и ещё таких же друзей позовёшь. Весь форум заполнится детсадовским контентом. Зачем это надо?

quote:

ORIGINAL: code_maker
Более того никому не выносят мозг такие вопросы на форуме вроде:"Сделай чит для игрушки", "Как присобачить капчу","Помоги сделать многопоточный чат","Сгенери гигантское Пи на Паскале","как юзать хттп я хочу сделать шайтан-сплойт" и все на них всегда оч. корректно отвечают xD.

Там видны попытки авторов топиков делать что-то. Там вопрос не сводится к тому что "напишите программу за меня". Здесь же мы видим именно "напишите за меня".
quote:

ORIGINAL: code_maker
З.Ы. я думал что пришёл на форум на котором помогают разчёхлится, а не обсерают того кто пытается перестать быть ламером бесконечно.

"Разчёхлится"? Это как?

Единственное как тебе можно помочь – это изложить тему "вложенные циклы" информатики пятого класса. Хотя нет вру, в пятом классе, вложенные циклы идут без переменных. Тут чуть сложнее, это класс седьмой. Я мог бы изложить, или найти в гугле готовое изложение, причём уровня пятого-седьмого класса, то есть такое изложение, которое будет понятно любому. Но… Метать бисер перед свиньями? Я не видел с твоей стороны ни одной попытки чего-либо сделать. Ты заурядный халявщик. Я пальцем не пошевелю в твою пользу.

Хотя… Держи.
1. Вложенные циклы
Прежде чем втыкать во вложенные циклы, стоит разобраться с темой
1.1 Циклы.
Начну издалека, с такой задачи: вывести на экран двадцать шесть раз фразу "Hello world!". Причём забыв про всё, что мы слышали про циклы. Как решить такую задачу? Примерно так:#include &lt;stdio.h&gt; int main() { printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); printf("Hello world!\n"); return 0; }Замечательное решение задачи, не так ли? Но представим теперь, что надо вывести не двадцать шесть раз, а сто двадцать шесть, или может быть 1000, 1000000 или ещё больше. Что делать? Если умело пользоваться навыками Copy-Paste, то быть может удастся справиться с миллионом строк "Hello world!". Может быть даже с миллиардом. Но рано или поздно либо буфер обмена, либо текстовый редактор откажутся принимать новые строчки "Hello world!". Да и вообще программа начинает выглядеть как-то по-идиотски. Было бы очень здорово, если бы программа выглядела бы примерно так:int main () { повтори_сто_тысяч_миллионов_раз: printf("Hello world!\n"); }На самом деле было бы здорово, и нам бы не пришлось десяток раз по кругу нажимать Ctrl-A, Ctrl-X, 10xCtrl-V. Но C, к сожалению, не понимает такого синтаксиса. Зато, как говорят учебники, в C есть цикл for, который позволяет сделать то же самое. Что это за зверь такой, цикл for? С его использованием программа наша должна выглядеть примерно так:for (А; Б; В) printf("Hello world!"\n);Только А, Б и В надо на что-то заменить. В учебниках написано следующее:
А – это инициализация цикла;
Б – условие продолжения;
В – выполняется после каждой итерации цикла, в нашем случае, после выполнения каждого printf("Hello world").
В учебниках написано, но что вставлять вместо А, Б и В? Идея следующая, вспомним про переменные, и попробуем создать переменную счётчик, в которой всегда в процессе выполнения программы будет записано количество выполненных printf'ов. Чтобы завести переменную, надо в начале добавить `int count;'. Мы это сделаем, но дальше наступает ответственный момент, что же собственно писать вместо А, Б и В?
А Вместо А мы подставим выражение "count = 0". Это выражение по-любому надо выполнить, поскольку как мы помним из темы "переменные" если мы не выполним этого выражения, то переменная count останется неинициализированной, и в ней будет лежать непонятно какое значение. Нам же не нужно непонятное. count у нас счётчик выведенных "Hello world!\n", в начале выполнения программы ещё не выведено ни одного, значит в count должен лежать 0. Мы этого и добъёмся вписав вместо А выражение "count = 0".
Б Б – это условие продолжения. То есть цикл будет раз за разом выполнять команду printf("Hello world!\n"), и перед каждым разом проверять условие. Если условие верно, то цикл продолжает работу, но как только условие станет неверным, цикл прекратит свои повторения. Какое условие мы должны вписать? Мы ведь знаем, что count у нас счётчик, в нём всегда лежит число уже выполненных повторений, значит если мы напишем вместо Б "count < 26", то цикл будет выполняться ровно до того момента как в count окажется 26. Как только count вырастет до 26, так сразу цикл прекратиться. Бинго! Таким образом мы добъёмся именно того, что printf("Hello world!") выполнится ровно 26 раз.
В Сюда надо вписать правило изменения count. Мы хотим, чтобы после каждой итерации count увеличивался бы на 1. Ну именно это мы и впишем: count = count + 1. Или можно написать сокращённо: count++.
Итого мы получаем:int main() { int count; for(count = 0; count &lt; 26; count++) printf("Hello world!\n"); } Если вместо 26 мы впишем 10 или 100 или 100000000, то for будет выводить нам "Hello world!\n" именно такое число раз. Удобно? Теперь вернёмся к
1.2 Вложенные циклы
Теперь рассмотрим такую задачу, надо вывести на экранZ ZY ZYX ZYXW ZYXWV ZYXWVU ZYXWVUT ZYXWVUTS ZYXWVUTSR ZYXWVUTSRQ ZYXWVUTSRQP ZYXWVUTSRQPO ZYXWVUTSRQPON ZYXWVUTSRQPONM ZYXWVUTSRQPONML ZYXWVUTSRQPONMLK ZYXWVUTSRQPONMLKJ ZYXWVUTSRQPONMLKJI ZYXWVUTSRQPONMLKJIH ZYXWVUTSRQPONMLKJIHG ZYXWVUTSRQPONMLKJIHGF ZYXWVUTSRQPONMLKJIHGFE ZYXWVUTSRQPONMLKJIHGFED ZYXWVUTSRQPONMLKJIHGFEDC ZYXWVUTSRQPONMLKJIHGFEDCB ZYXWVUTSRQPONMLKJIHGFEDCBA Как это сделать? Тут 26 строчек. Если бы строчки были бы одинаковые, то мы бы сделали это легко, написав циклfor (count = 0; count &lt; 26; count ++) ...Надо было бы лишь подумать о том, что вставить вместо "…". Что же делать с разными строчками?
Пойдём тем же путём. Для начала научимся выводить каждую из этих двадцати шести строчек. Мы можем сделать это, например, так: printf("Z\n"); printf("ZY\n"); printf("ZYX\n"); printf("ZYXW\n"); printf("ZYXWV\n"); printf("ZYXWVU\n"); printf("ZYXWVUT\n"); printf("ZYXWVUTS\n"); printf("ZYXWVUTSR\n"); printf("ZYXWVUTSRQ\n"); printf("ZYXWVUTSRQP\n"); printf("ZYXWVUTSRQPO\n"); printf("ZYXWVUTSRQPON\n"); printf("ZYXWVUTSRQPONM\n"); printf("ZYXWVUTSRQPONML\n"); printf("ZYXWVUTSRQPONMLK\n"); printf("ZYXWVUTSRQPONMLKJ\n"); printf("ZYXWVUTSRQPONMLKJI\n"); printf("ZYXWVUTSRQPONMLKJIH\n"); printf("ZYXWVUTSRQPONMLKJIHG\n"); printf("ZYXWVUTSRQPONMLKJIHGF\n"); printf("ZYXWVUTSRQPONMLKJIHGFE\n"); printf("ZYXWVUTSRQPONMLKJIHGFED\n"); printf("ZYXWVUTSRQPONMLKJIHGFEDC\n"); printf("ZYXWVUTSRQPONMLKJIHGFEDCB\n"); printf("ZYXWVUTSRQPONMLKJIHGFEDCBA\n"); Но ты попробуй набрать это ручками. Причём я НАСТОЯТЕЛЬНО советую попробовать. Не для того, чтобы пальцы об клавиатуру сточить, а для того, чтобы пятой точкой опоры почувствовать закономерности. Вот запусти текстовый редактор, забыв про Copy-Paste, и набери. Или возьми ручку и напиши на бумажке всё это.
Написал? Мне прерываться и ждать, когда ты выложишь скан бумажки на которой всё это написано ручкой, или поверить на слово? Ладно, в первый раз поверю.
Итак, какие закономерности мы выявили? Во-первых, в каждой строчке есть printf. Во-вторых в каждой строчке есть \n. Они раздражают больше всего. Но хуже всего последняя строчка, где надо натыкать 26 букв, причём в алфавитном порядке. Точнее в обратном алфавитном. Поэтому начнём именно с последней строчки. Хотелось бы как-нибудь считерить, и сделать так, чтобы буквы выводились бы сами. И тут нам может помочь всё тот же for. Достаточно лишь знать такой факт, что буквы в C, на самом деле не буквы, а номера букв в таблице ASCII. Причём нам необязательно помнить номер той или иной буквы, достаточно знать, что буквы там расположены по алфавиту. Это замечательно видно в таком коде:int main() { char c = 'A'; printf("c = %c\n", c); printf("c+1 = %c\n", c+1); printf("c+2 = %c\n", c+2); printf("c+3 = %c\n", c+3); printf("c+4 = %c\n", c+4); printf("c+5 = %c\n", c+5); printf("c+6 = %c\n", c+6); printf("c+7 = %c\n", c+7); printf("c+8 = %c\n", c+8); printf("c+9 = %c\n", c+9); printf("c+10 = %c\n", c+10); printf("c+11 = %c\n", c+11); printf("c+12 = %c\n", c+12); printf("c+13 = %c\n", c+13); printf("c+14 = %c\n", c+14); printf("c+15 = %c\n", c+15); printf("c+16 = %c\n", c+16); printf("c+17 = %c\n", c+17); printf("c+18 = %c\n", c+18); printf("c+19 = %c\n", c+19); printf("c+20 = %c\n", c+20); printf("c+21 = %c\n", c+21); printf("c+22 = %c\n", c+22); printf("c+23 = %c\n", c+23); printf("c+24 = %c\n", c+24); printf("c+25 = %c\n", c+25); return 0; }В printf мы используем %c вместо %d, только для того, чтобы сказать printf'у, чтобы он выводил бы не число, а символ соответствующий числу. Ну и теперь, зная всё это, то есть зная как выводить последовательные символы алфавита, и как автоматически повторять выполнение одной строки попробуем сделать всё это, при помощи for:int main() { int count; for(count = 0; count &lt; 26; count ++) printf("%c", 'A'+count); printf("\n"); } А! Забыл. Нам ведь надо наоборот, от конца к началу, то есть не ABCD…Z, а ZYX…A. Попробуй это сделать самостоятельно, а я пока буду вещать о другом. А именно, я хотел обратить внимание на две вещи: во-первых, printf, который выполняется много-много раз, не содержит в себе \n, а во-вторых, после цикла стоит printf("\n"). Это понятно зачем такие сложности? Ведь нам не надо начинать новую строку после каждой буквы, так? Поэтому и "printf("%c", 'A'+count)" и не содержит перевода строки \n, но после всей строчки, хотелось бы всё же начать новую строку, поэтому после цикла я и написал printf("\n").
Фух. С этим мы разобрались. А, нет ещё. Я обещался выписать все буквы в обратном порядке:for(count = 25; count &gt;= 0; count --) printf("%c", 'A'+count); Тут всё довольно просто, я поигрался с составными частями for, и сделал так, чтобы вначале count был бы равен 25 (а 'A'+25 – это 'Z'), и потом бы после вывода каждой буквы уменьшался бы на 1 (count–, который можно заменить на count=count-1). А в качестве условия продолжения я поставил такое count>=0, которое говорит for'у о том, что выполнять строчку надо до тех пор, пока count больше или равен нуля. Короче то же самое, только count изменяется не от 0 до 25 включительно, а от 25 до 0 включительно.
Теперь точно всё. Можно переходить к исходной задаче вывода эдакого треугольника из букоф.
Для начала подход лобовой, я попробую для вывода каждой строчки написать свой цикл:#include&lt;stdio.h&gt; int main() { int count; for(count = 1; count &gt;= 0; count --) printf("%c", 'A'+count); printf("\n"); for(count=2; count &gt;= 0; count --) printf("%c", 'A'+count); printf("\n"); ... Не, слушай. Я устал вещать. Кроме того, мне, точнее тебе, просто необходимо для понимания дальнейшего понять эту ещё ненаписанную программу. Поэтому, возьми ручку и бумажку и допиши эту программу до конца. Причём, поскольку это не "первый раз", то на слово я уже не поверю. Выложишь скан/фотографию бумажки с программой, я тогда продолжу.
Post #: 6
RE: Вопрос по языку Си - 2011-07-31 15:17:42.800000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
Я там подправил недописанную программу: забыл вставить "printf("\n")". Ты не забывай, и напиши её целиком. Вплоть до: return 0; }
Post #: 7
RE: Вопрос по языку Си - 2011-07-31 20:48:23.206666   
code_maker

Сообщений: 27
Оценки: 0
Присоединился: 2011-07-24 17:46:28.343333
В общем решил я сам одну из задач не прибегая к запощенной выше информации т.к. она мне не пригодилась(модифицировал предоставленый мной пример), вариант конечно не самый лучший но удовлетворительный: #include &lt;stdio.h&gt; int main(void) { &nbsp;&nbsp;&nbsp; const int ROWS = 6; &nbsp;&nbsp;&nbsp; const int CHARS = 6; &nbsp;&nbsp;&nbsp; int row,times; &nbsp;&nbsp;&nbsp; char ch; &nbsp;&nbsp;&nbsp; for (row = 6,times = 0;row &gt; 0,times &lt; 7; row--,times++) &nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (ch = ('F'); ch &gt; ('F' - times); ch--) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%c", ch); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("\n"); &nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp; return 0; }  
т.е. сделал программу строящую в консоли прямоугольный треугольник из букв, а вот как равнобедренный построить чего-то не доходит.Как юзать пробелы?
Post #: 8
RE: Вопрос по языку Си - 2011-07-31 20:52:59.773333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: code_maker
В общем решил я сам одну из задач не прибегая к запощенной выше информации т.к. она мне не пригодилась

Ну и разбирайся тогда дальше сам. Не очень-то и хотелось.
Post #: 9
RE: Вопрос по языку Си - 2011-07-31 22:33:08.016666   
code_maker

Сообщений: 27
Оценки: 0
Присоединился: 2011-07-24 17:46:28.343333
Не очень то и было надо =)
Post #: 10
RE: Вопрос по языку Си - 2011-07-31 22:34:19.056666   
Alianna

Сообщений: 1922
Оценки: 356
Присоединился: 2010-03-02 11:27:12.343333

quote:

ORIGINAL: code_maker

Не очень то и было надо =)

Ну и нафига тогда было отнимать время форумчан, забивая им голову задачкой, решение которой тебе не нужно?
Post #: 11
RE: Вопрос по языку Си - 2011-07-31 22:40:00.170000   
code_maker

Сообщений: 27
Оценки: 0
Присоединился: 2011-07-24 17:46:28.343333
Не, решение мне очень даже нужно.Но так мучать себя ради меня и вместе с тем гнать в подтексте что я такой ламер не стоило…
Мог бы сразу сказать мне:"твоя задача говно,ты лох помогать тебе не собираюсь", а не истязать себя "страшным" кодом…xD
Post #: 12
RE: Вопрос по языку Си - 2011-07-31 23:14:57.836666   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: code_maker
Не, решение мне очень даже нужно.Но так мучать себя ради меня и вместе с тем гнать в подтексте что я такой ламер не стоило…
Мог бы сразу сказать мне:"твоя задача говно,ты лох помогать тебе не собираюсь", а не истязать себя "страшным" кодом…xD

Дурак ты, и уши у тебя холодные. Ты так ничего и не понял. Как ты думаешь, сколько времени я потратил на написание того поста про циклы? Раза в два больше, чем потребуется тебе на создание того самого скана/фотографии бумажки с программой. Между прочим написать программки – решения к тем двум приведённым задачам, заняло бы времени гораздо меньше. И как ты думаешь, я писал так много и долго для того, чтобы сказать тебе, что ты ламер и лох, и что задача твоя говно? Нет, конечно же. Если бы я хотел это сказать, я бы сделал это гораздо проще.

Тебе стоит отметить для себя такие вещи:
1. Я прекрасно представляю себе какие проблемы могут вызывать вложенные циклы при попытке воткнуть в эту тему и научиться ею пользоваться. Я наблюдал за десятками человек, которые пытались с этой проблемой справиться. И я помогал им с этой проблемой справиться, причём небезуспешно. Поэтому, какими бы простыми не были бы задачи, я отлично понимаю, насколько сложными они могут быть для тебя.
1a. Я и сам сталкивался с похожими проблемами. Скажем когда я решил изучить asm, купил книжку и начал читать – я недели две думал над книжкой и никак не мог понять, каким же образом писать программы на ассемблере. Вот всё что в книжке написано понятно, а как писать непонятно. Сейчас же, я понять не могу, что именно мне было тогда непонятно.
2. Я уже писал, и повторю ещё раз: я знаю не понаслышке, что писать программу за учащегося – это никак не способ научить его чему-то. Даже если он горит желанием учиться, он не научиться ничему, если будет просто смотреть в чужие программы.
3. Ты не понимаешь не только тему "вложенные циклы". Ты так же не умеешь задавать вопросы на форумах. И в предыдущей беседе я попытался донести это до тебя. Кстати, будет время, поищи в гугле документ "как правильно задавать вопросы". Найди и почитай.
Post #: 13
RE: Вопрос по языку Си - 2011-08-01 00:32:29.143333   
code_maker

Сообщений: 27
Оценки: 0
Присоединился: 2011-07-24 17:46:28.343333
Ладно спасибо за всё…
Post #: 14
RE: Вопрос по языку Си - 2011-08-01 01:06:06.420000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: code_maker
Ладно спасибо за всё…

А тему вложенные циклы ты так и не понял… 8|
Post #: 15
RE: Вопрос по языку Си - 2011-08-01 01:23:37.923333   
code_maker

Сообщений: 27
Оценки: 0
Присоединился: 2011-07-24 17:46:28.343333
Разберусь по подробнее буду внимательнее читать С.Прату.
Post #: 16
RE: Вопрос по языку Си - 2011-08-01 09:51:39.056666   
TremaS

Сообщений: 18
Оценки: 0
Присоединился: 2011-07-27 14:07:14.233333
Первым делом для подобных задач необходимо составить алгоритм, вывести закономерности, которые можно впихнуть в формулы. А когда алгоритм готов запрограммировать его уже не проблема.
Тут надо запрограммировать матрицу
xxxxAxxxx
xxxABAxxx
xxABCBAxx
xABCDCBAx
ABCDEDCBA

Где x - в данном случае пробелы.

Post #: 17
RE: Вопрос по языку Си - 2011-08-02 17:53:24.353333   
brainfrog

Сообщений: 1
Оценки: 0
Присоединился: 2010-09-07 16:44:58.646666
Раз
#include &lt;stdio.h&gt; int main() { int max_chars = 26; for(int i=0; i&lt;max_chars; i++) { for(int j=0; j&lt;=i; j++) { printf("%c",'A'+max_chars-j-1); } printf("\n"); } return 0; } Два
#include &lt;stdio.h&gt; int main() { int max_chars = 26; for(int i=0; i&lt;max_chars; i++) { for(int j=max_chars-1; j!=i; j--) { printf(" "); } for(int k=0; k&lt;=i; k++) { printf("%c",'A'+k); } for(int l=0; l&lt;i; l++) { printf("%c",'A'+i-l-1); } printf("\n"); } return 0; }
Post #: 18
RE: Вопрос по языку Си - 2011-08-02 22:22:38.890000   
code_maker

Сообщений: 27
Оценки: 0
Присоединился: 2011-07-24 17:46:28.343333
quote:

ORIGINAL: brainfrog

Раз
#include &lt;stdio.h&gt; int main() { int max_chars = 26; for(int i=0; i&lt;max_chars; i++) { for(int j=0; j&lt;=i; j++) { printf("%c",'A'+max_chars-j-1); } printf("\n"); } return 0; } Два
#include &lt;stdio.h&gt; int main() { int max_chars = 26; for(int i=0; i&lt;max_chars; i++) { for(int j=max_chars-1; j!=i; j--) { printf(" "); } for(int k=0; k&lt;=i; k++) { printf("%c",'A'+k); } for(int l=0; l&lt;i; l++) { printf("%c",'A'+i-l-1); } printf("\n"); } return 0; }

Спасибо, реализовано безупречно.Стоит подчеркнуть что циклы инициализированы по стандарту С99 и компилятор MinGW (gcc) не собирает этот код без флага -std=c99 или -std=gnu99.Но при их наличии или иной инициализации всё работает на ура!
Post #: 19
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Вопрос по языку Си







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.