int main(){ int* a = 71; a = a + 1; printf("%d\n", a); }
Да, программа работает и выводит 75. Компилятор дает предупреждение: warning: initialization makes pointer from integer without a cast [enabled by default] int* a = 71; ^ В языке С инициализация указателя из целого числа без явного приведения вызывает сообщение о предупреждении. Его можно обойти, записав int* a = (int*) 71;
Само значение 75 объясняется просто: указатель, имеющий значение 71, при добавлении 1 наращивается не на 1, а на 1, умноженную на длину указателя (4 байта для integer), поскольку именно так реализуется арифметика указателей. 71+4=75.
200 • t < 800
если t = 0, то 200 • 0 = 0; 0 < 800 — неравенство верно;
если t = 1, то 200 • 1 = 200; 200 < 800 — неравенство верно;
если t = 2, то 200 • 2 = 400; 400 < 800 — неравенство верно;
если t = 3, то 200 • 3 = 600; 600 < 800 — неравенство верно;
если t = 4, то 200 • 4 = 800; 800 < 800 — неравенство неверно.
Значит решением неравенства являются числа 0, 1, 2 и 3.
800 : d > 200
если d ≠ 0, поскольку на 0 делить нельзя;
если d = 1, то 800 : 1 = 800; 800 > 200 — неравенство верно;
если d = 2, то 800 : 2 = 400; 400 > 200 — неравенство верно;
если d = 3, то 800 : 3 = 266 (остаток 2); 266 (остаток 2) > 200 — неравенство верно;
если d = 4, то 800 : 4 = 200; 200 > 200 — неравенство неверно.
Значит решением неравенства являются числа 1, 2 и 3.
К какому неравенству Коля придумал задачу?
Очки для подводного плавания стоят 200 рублей. Сколько таких очков мог купить Костя, если он заплатил меньше 800 рублей?
Коля составил задачу к первому неравенству 200 • t < 800
Сколько могло быть таких коробочек, если в каждой лежит меньше 3 кусочков яшмы?
Задача составлена к неравенству б).
Придумайте свою задачу к любому из этих неравенств.
Света купила новые цветные карандаши, уложенные в красивые коробочки по 23 штуки в каждой. Сколько карандашей могла купить Света, если известно, что из магазина она принесла меньше 5 коробочек с карандашами.
Для решения задачи необходимо решить неравенство е).
n: 23 < 5
Решаем неравенство методом подбора. Так как коробочек было меньше 5, то значит Света могла купить 1, 2, 3 или 4 коробочек (ноль коробочек она купить не могла, потому что тогда бы у неё вообще не было карандашей).
если Света купила 1 коробочку карандашей, то тогда у неё 1 • 23 = 23 карандаша, то есть n = 23;
если Света купила 1 коробочку карандашей, то тогда у неё 2 • 23 = 46 карандашей, то есть n = 46;
если Света купила 1 коробочку карандашей, то тогда у неё 3 • 23 = 69 карандашей, то есть n = 69;
если Света купила 1 коробочку карандашей, то тогда у неё 4 • 23 = 92 карандаша, то есть n = 92.
Значит решением неравенства n: 23 < 5 будет являться множество чисел 23, 46, 69 и 92.
Ответ: Света могла купить 23, 46, 69 или 92 карандаша.
int main(){
int* a = 71;
a = a + 1;
printf("%d\n", a);
}
Да, программа работает и выводит 75.
Компилятор дает предупреждение: warning: initialization makes pointer from integer without a cast [enabled by default]
int* a = 71;
^
В языке С инициализация указателя из целого числа без явного приведения вызывает сообщение о предупреждении.
Его можно обойти, записав int* a = (int*) 71;
Само значение 75 объясняется просто: указатель, имеющий значение 71, при добавлении 1 наращивается не на 1, а на 1, умноженную на длину указателя (4 байта для integer), поскольку именно так реализуется арифметика указателей. 71+4=75.