#include <stddef.h>
#include <stdio.h>
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
#define ARRAY_SSIZE(arr) ((ptrdiff_t)ARRAY_SIZE(arr))
int main(void)
{
ptrdiff_t x;
int a, b;
int resultado;
printf("Quantos resultados esse vetor vai receber tem ? ");
scanf("%ti", &x);
int vector[x] = {0};
printf("\n");
for (ptrdiff_t i = 0; i < ARRAY_SSIZE(vector); i++) {
printf("Digite valores para serem somados e armazenados no vetor:\n");
scanf("%d%d", &a, &b);
resultado = a + b;
vector[i] = resultado;
printf("vetor contém: %d\n", vetor[i]);
}
printf("\n");
printf("você conseguiu !!!\n");
return 0;
}
Вы должны дать массиву (не вектору) размер (x
в данном случае), чтобы создать его.
Назначения (a = b;
) работают следующим образом: программа вычисляет все, чтосправа, и копирует это значение в переменную, которая находится слева от =.
Когда вы используете (access, write, ...) массив, вы должны указатьиндекс (позиция) массива, который вы хотите использовать.
Лучше использовать sizeof
для вычисления размера массива для пределов цикла, чтобы при изменении объявления массива код по-прежнемуработает (см. ARRAY_SIZE
и ARRAY_SSIZE
, что является подписанной версией, так что сравнение выполняется между целыми числами одного знака, чтобы избежать неожиданных ошибок).
Всегда заканчивайте свой последний printf
знаком\n
, чтобы он не смешивался с другим текстом в терминале.