Помогите решить задачу на Си(Срочно, лабу сдавать уже сегодня!!)
Для последовательности целых чисел заданной длины N (вводится в диалоге с пользователем)
подсчитать общую сумму и количество элементов заданной последовательности, которые расположены между первым элементом последовательности значение которого равно квадрату его порядкового номера и последним кратным трем элементом последовательности.
Вот мое решение, но это скорее всего ахинея)

По дате
По рейтингу
12345678910111213141516171819202122232425262728293031
#include <stdio.h>
#include <stdlib.h>
#define min(x, y) ((x) < (y) ? (x) : (y))
#define max(x, y) ((x) > (y) ? (x) : (y))
void swap(int *x, int *y){
int t = *x;
*x = *y;
*y = t;
}
int main() {
int n;
printf("Input amount of the elements: ");
scanf("%d", &n);
int l = n, r = -1;
int *a = (int *) malloc(sizeof(int) * n), *p = (int *) malloc(sizeof(int) * (n + 1));
printf("Input elements themselves:\n");
for (int i = 0; i < n; i++) {
scanf("%d", &(*(a + i)));
*(p + i + 1) = *(p + i) + *(a + i);
if (*(a + i) == (i + 1) * (i + 1)) l = min(l, i);
if (!(*(a + i) % 3)) r = max(r, i);
}
if (l > r) swap(&l, &r);
if (r - l - 1 <= 0) printf("Amount of suitable elements: 0\nTheir sum: 0");
else printf("Amount of suitable elements: %d\nTheir sum: %d", r - l - 1, *(p + r) - *(p + l + 1));
free(a);
free(p);
}
ну и редкостную ерунду ты написал. Надо же было до такого вообще додуматься...)
Больше по теме