хранение результата в векторе - PullRequest
2 голосов
/ 14 мая 2019

Я пытался сохранить результат в векторе, а затем распечатать все эти сохраненные значения, я думаю, что я очень далеко, но это то, что я смог разработать до сих пор, мне нужна помощь в том, что не таки как ты мог это сделать, спасибо тебе и спокойной ночи

#include <stdio.h>

int main(void) {
  int i;
  int x;
  int vetor[]={};
  int a, b;
  int resultado;

  printf("Quantos resultados esse vetor vai receber tem ? ");
  scanf("%d", &x);
  printf("\n");
  for(i=1; i<=x; i++){
      printf("Digite valores para serem somados e armazenados no vetor:\n");
      scanf("%d%d", &a, &b);
      resultado = a+b;
      resultado = *vetor;
      printf("vetor contém: %d\n", *vetor);
  }
  printf("\n");
  printf("você conseguiu !!!");

  return 0;
}
`````````````````````````````````````````````````````````````````´´´´

1 Ответ

1 голос
/ 14 мая 2019
#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, чтобы он не смешивался с другим текстом в терминале.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...