
- •Занятие 4
- •1. Массивы: определение, инициализация, обработка. Строка как массив символов.
- •1. Массивы
- •2. Элементарные вычисления
- •Указания к решению упражнений
- •Реализация. Читаем количество учеников n и их оценки. Параллельно вычисляем сумму балов. Разделив сумму балов на количество учеников, получаем средний бал average.
- •Реализация. Читаем число тестов. Для каждого теста читаем количество фермеров и данные про них, суммируем государственную помощь для каждого фермера в переменной sum и выводим результат.
- •Реализация. Поскольку X 50000, то вычисления следует проводить в 64-битных целых числах. Объявим переменные:
- •Реализация. Читаем количество тестов tests. Для каждого теста читаем входные значения a и b. Сравниваем их и выводим соответствующий символ операции сравнения.
Реализация. Читаем число тестов. Для каждого теста читаем количество фермеров и данные про них, суммируем государственную помощь для каждого фермера в переменной sum и выводим результат.
scanf("%d",&tests);
while(tests--)
{
scanf("%d",&f);
sum = 0;
while(f--)
{
scanf("%d %d %d",&a,&b,&c);
sum += a * c;
}
printf("%d\n",sum);
}
Упражнение 2.5
[Вальядолид, 10302]. Суммирование
полиномов. Значение
суммы вычислим по формуле: 1 + 8 + 27 + ... +
x3
= (1 + 2 + …. + x)2
=
.
Пример. Для x = 3 имеем: 1 + 8 + 27 = (1 + 2 + 3)2 = 62 = 36, что верно.
Реализация. Поскольку X 50000, то вычисления следует проводить в 64-битных целых числах. Объявим переменные:
long long n,res;
Основной цикл программы состоит из чтения числа x, вычисления суммы по выше приведенной формуле и печати результата.
while(scanf("%lld",&n) == 1)
{
res = n * (n + 1) / 2;
res = res * res;
printf("%lld\n",res);
}
Упражнение 2.6 [Вальядолид, 10499]. Земля праведности. Стоимость целой сферы радиуса r равна площади ее полной поверхности 4r2. Площадь полной поверхности n долек равна площади полной поверхности сферы плюс n площадей кругов радиуса r: 4r2 + r2n.
Прибыль математика в процентах составит
=
= 25n %
Заметим, что при n = 1 математик не получит прибыль, так как площадь покупаемой полной поверхности сферы равна площади продаваемой.
Пример. Рассмотрим случай n = 2. По выше приведенной формуле вычислим прибыль. Она равна 25 * 2 % = 50%.
Реализация. Поскольку n < 231, то значение 25n может быть больше 231. Вычисления следует производить с 64 - разрядными целыми числами (числами типа long long). Читаем входное значение n. Если оно равно 1, то прибыль составит 0 %, иначе 25n %.
long long n;
while (scanf("%lld",&n), n >= 0)
{
if (n == 1) printf("0%%\n");
else printf("%lld%%\n",25*n);
}
Упражнение 2.7 [Вальядолид, 11172]. Операторы сравнения. Для решения задачи достаточно читать и сравнивать пары чисел a и b, после чего выводить соответствующий символ операции сравнения.
Реализация. Читаем количество тестов tests. Для каждого теста читаем входные значения a и b. Сравниваем их и выводим соответствующий символ операции сравнения.
scanf("%d",&tests);
while(tests--)
{
scanf("%d %d",&a,&b);
if (a < b) printf("<\n"); else
if (a > b) printf(">\n"); else
printf("=\n");
}