难以对2组数组求和

时间:2019-03-31 04:52:37

标签: c arrays switch-statement case

我正在做一个小项目,并停留在这部分上。

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

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

如果我没记错,您尝试将A1中的元素与B1中的元素相加,并将sum(A1)+ sum(B1)的相加存储到名为sum的变量中。

由于元素存在于数组中,因此必须使用for循环,因此将情况3的代码更改为:

endAt

在这里打印您的总和(关闭循环后)

,如果您要添加数组的连续元素,则必须有第三个数组,该数组将存储连续元素的总和

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

                }

之后,使用for循环打印元素

希望这会对您有所帮助。