| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Помогите разобраться с задачками |
| Автор: ask0Ld 20.3.2012, 19:49 | ||||||||
| Здравствуйте. Мне на завтра нужно сделать две задачки по Си, помогите пожалуйста разобраться. Я с компилировал их, результаты получил. Но мне нужно понять сам код, разобраться в нем, почему выходит такой результат и что за чем идет... 1) В C-программе объявлен массив и переменную:
Какое значение будет иметь переменная k после выполнения указанного ниже оператора?
2) В программе объявлены символьная строка и указатель:
Что будет напечатано после выполнения следующего фрагмента программы?
|
| Автор: mes 20.3.2012, 19:53 |
| и что именно не понятно ? |
| Автор: ask0Ld 20.3.2012, 20:15 | ||||
ну например этот код не понятен:
и какие действия выполняет *р в цикле:
|
| Автор: mes 20.3.2012, 20:40 | ||||
|
| Автор: Фантом 20.3.2012, 20:45 |
Разбор "по порядку" из k вычитается значение, равное k/3, если d[1] при делении на 2 дает в остатке нечто, большее 0, или равное 10-d[4]/3 (в противном случае). d[1] равно 10, оно делится на 2 нацело, поэтому нас интересует "противный случай", 10-d[4]/3=10-7/3=10-2=8. Итого k=k-8=8-8=0. Это просто проход по строчке, указатель p на каждом шаге цикла указывает на очередной символ строки. Соответственно, вся конструкция имеет такой смысл: пока очередной символ не является пробелом или концом строки, переделываем его в заглавную букву и переходим к следующему символу. |
| Автор: ask0Ld 20.3.2012, 21:14 |
| Спасибо! Тепер прояснилось все) |