首页 > 解决方案 > 在制作 2 组数组的总和时遇到问题

问题描述

我正在做一个小项目,并被困在这一部分。

我基本上是在尝试将用户输入的 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;
    }
}

标签: carraysswitch-statementcase

解决方案


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;

推荐阅读