无法计算2组数组的总和

问题描述 投票:-1回答:2

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

我基本上试图将用户输入的数字用于A1和B1来计算它的总和(3计算A1和B1的元素总和)。

这就是我到目前为止所得到的并没有对我应该如何解决这个问题的任何想法?

任何帮助总是感谢谢谢!

有关该计划的背景资料,如果有更好的理解:

该程序用于从用户(A1,B1)获取2组数字并将其放入数组中。在输入数字之后,用户将通过菜单提示,其中包括他们想要对数字做什么的选项。该选项将被发送到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;
    }
}
c arrays switch-statement case
2个回答
0
投票

如果我没有错,你试图添加A1中的元素和B1中的元素,并将sum(A1)+ sum(B1)的加法存储到名为sum的变量中。

由于元素存在于数组中,因此必须使用for循环,因此请将第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循环来打印元素

希望这会帮助你。


2
投票

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;
© www.soinside.com 2019 - 2024. All rights reserved.