Возникли проблемы при суммировании двух наборов массивов - PullRequest
0 голосов
/ 31 марта 2019

Я делаю небольшой проект и застрял в этой части.

Я в основном пытаюсь взять числа, введенные пользователем для A1 и B1, чтобы получить из них сумму (3 Вычислить сумму элементов A1 и B1).

Это то, что я получил до сих пор, и не работает никаких идей о том, как я должен решать это?

любая помощь всегда ценится, спасибо!

справочная информация о программе, если есть лучшее понимание:

Программа предназначена для получения двух наборов чисел от пользователя (A1, B1) и помещения в массив. После того, как числа введены, пользователю будет предложено меню с опциями того, что они хотели бы сделать с числами. опция будет отправлена ​​в один из 4 случаев (3 написано до сих пор)

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int option; // Int for Menu Option choice
    int i, a, j; //Int FOR A1 
    int n = 10; // Int FOR A1 
    int number[10]; // Int FOR A1

        int sum = 0; // SUM FOR OPTION 3

    int o, s, k; // Int FOR B1
    int m = 10; // Int FOR B1
    int num[10]; //Int for B1 ARRAY

        printf("Enter 10 Numbers for A1\n");  // Numbers for A1
        for (i = 1; i < n; ++i)
            scanf("%d", &number[i]);


        printf("Enter 10 Numbers for B1: \n"); //Numbers for B1
        for (o = 1; o < m; ++o)
            scanf("%d", &num[o]);





    //USER PICKS OPTION 
    printf("******************************************************************\n");
    printf("*\tSelect one of the following options                      *\n");
    printf("*\t1   Sort  A1 values in Ascending Order                   *\n");
    printf("*\t2   Sort B1 values into Descending Order                 *\n");
    printf("*\t3   Compute the Sum of the Elements of A1 and B1         *\n");
    printf("*\t4   Subtract the Elements of B1 from the Elements of A1  *\n");
    printf("******************************************************************\n");
    printf("Enter Your Option: ");
    scanf("%d", &option);

    switch (option)
    {
    case 1:
        for (i = 0; i < n; ++i)
        {
            for (j = i + 1; j < n; ++j)
            {
                if (number[i] > number[j])
                {
                    a = number[i];
                    number[i] = number[j];
                    number[j] = a;
                }
            }

        }
        printf("The numbers arranged in ascending order are given below \n");
        for (i = 0; i < n; ++i)
            printf("%d\n", number[i]);
        break;

    case 2:
        for (o = 0; o < m; ++k)
        {
            for (k = o + 1; k < m; ++k);
            {
                if (num[o] < num[k])
                {
                    s = num[o];
                    num[o] = num[k];
                    num[k] = s;
                }
            }
        }
        printf("The numbers arranged in descending order are given below\n");

        for (o = 0; o < m; ++o)

            printf("%d\n", num[o]);
        break;

      case 3:   // FOR OPTION 3 PART IM LOST ON MAKE A1 AND B1 SUM

        {

            sum = num[o] + number[i];

        }
            printf("Sum = %d\n", sum);
        return 0;
    }
}

Ответы [ 2 ]

2 голосов
/ 31 марта 2019

Матрица суммы 2 должна генерировать третью матрицу.Ваш код должен быть примерно таким:

int sum[10];
int bigTotal;
...
case 3:
   for(i = 0, bigTotal = 0; i < 10; i++){
      sum[i] = num[i] + number[i];
      bigTotal += sum[i];

      printf("s[%d] = %d\n", i, s[i]);
   }
   printf("Sum of all numbers: %d\n", bigTotal);
   break;
0 голосов
/ 31 марта 2019

Если я не ошибаюсь, вы пытаетесь добавить элементы в A1 и элементы в B1 и сохраняете сложение sum (A1) + sum (B1) в переменную с именем sum.

Поскольку элементы присутствуют в массиве, вы должны использовать цикл, поэтому измените код в случае 3 на:

for(i=0;i<n;i++){
  sum=sum+num[i]+number[i];

                }

Здесь выведите сумму (после закрытия цикла)

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

int total[10];
for(i=0;i<n;i++){
    total[i]=num[i]+number[i];
             }

после этого используйте цикл for для печати элементов

Надеюсь, это поможет вам.

...