Элементы массива увеличить на значение индекса - C (СИ)
Формулировка задачи:
Дан массив размерности n. Элементы массива заполнить случайными значениями от -44 до 19.
Все его элементы увеличить на значение индекса.
Выяснить, верно ли, что сумма элементов массива есть число, кратное 10.
Помогите пожалуйста написать код на СИ буду благодарен
Решение задачи: «Элементы массива увеличить на значение индекса»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i, n, a = -44, b = 19;
int *mas, sum = 0;
printf("n = ");
scanf("%d", &n);
if(n <= 0)
return 1;
mas = (int*) calloc(n, sizeof(int));// выделяем память
srand(time(NULL));
for(i = 0; i < n; i++)
{
mas[i] = rand()%(b - a + 1) + a + i;// случайное число в диапозоне [a;b] плюс индекс
sum += mas[i];
}
printf("Mas : ");
for(i = 0; i < n; i++)
printf("%d ", mas[i]);
printf("\nSum = %d\n", sum);
if(!(sum%10))
printf("True: sum%%10 = 0\n");
else
printf("False: sum%%10 = %d\n", sum%10);
free(mas);// освобождаем память
return 0;
}
Объяснение кода листинга программы
- Объявлены переменные:
- i, n, a = -44, b = 19;
- int *mas, sum = 0;
- mas выделен в динамическую память с помощью calloc(n, sizeof(int));
- srand(time(NULL));
- С помощью цикла for заполняется массив mas случайными числами в диапазоне [a;b] плюс индекс.
- Выполняется операция приведения типа (int) для значения sum, которое затем сохраняется в переменную sum.
- С помощью цикла for выводятся значения массива mas.
- Вычисляется сумма элементов массива, которая сохраняется в переменную sum.
- Проверяется условие (sum % 10 == 0), и выводится соответствующее сообщение.
- Выполняется операция освобождения памяти для массива mas с помощью функции free(mas).
- Возвращается 0, что означает успешное окончание работы программы.