C 中的数组,添加对并比较以找到最大值

Arrays in C that adds pairs and compares to find the max

所以我写代码有问题。

我刚刚接触编程世界,我需要创建一个包含 2 到 20 个整数的数组,然后将第一个和最后一个整数相加以获得最大值;例如在这个 [23; 12; 78; 52; 76; 15; 21; 82; 64; 91],程序相加23 + 91,然后12 + 62,然后78 + 82,然后打印出最大和,只有输入的数组数量为偶数时才有效,如果为奇数则获胜没用。

请问代码是怎样的?

这是我目前能够编写的部分代码

int m, a[20], sum, K, temp;
printf("Enter size of array:\n");
scanf_s("%d", &m);

if (m > 20 || m < 2 || m % 2 != 0)
{
    error_printf("Invalid input data");
    WAIT_ANY_KEY
    return 0;
}

for (int i = 0; i < m; i++) {
    printf("Enter Number [%d] : ", i + 1);
    scanf_s("%d", &a[i]);
    if (a[i] > 1000 || a[i] < 0)
        {
            error_printf("Invalid Input data");
            WAIT_ANY_KEY
                return 0;
        }
    }

    printf("\n The largest sum of pairs is : [%d]\n\n", max);
    return 0;
}

如果有人能解释,我将不胜感激,而不是输入 10 个固定整数,我可以只输入数组中我想要的位数,以及如何确定总和并找到最大值。

谢谢

只是一个工作示例:

#include<stdio.h>

int printMatrix ( const char *d, int mtp[], int n ) {
  printf ( "\n The matrix [ %s ] is : ", d );
  for ( int i=0; i<n-1; i++ ) {
    printf ( "%d - ", mtp[i] );
  }
  printf ( "%d", mtp[n-1] );
  return 0;
}

int main () {
  const int N = 20;
  int max=0;
  int n=0;

  while ( n == 0 ) {
    printf ( " Number of Items should be even, between 2 and 20\n" );
    printf ( " Enter the number of items : " );
    scanf  ( "%d", &n );
    if ( n>20 || n%2 != 0 || n<2 ) n = 0;
  }

  int M[N] = {0};
  int mM[int(N/2)] = {0};

  for ( int i=0; i<n; i++ ) {
    printf ( "Enter Number [%d] : ", i+1 );
    scanf  ( "%d", &M[i] );
  }

  for ( int i=0; i<n/2; i++ ) {
    mM[i] = M[i] + M[n-1-i];
  }

  for ( int i=0; i<n/2; i++) {
    if (mM[i] > max) max = mM[i];
  }

  printMatrix ( "Starting   ", M, n );
  printMatrix ( "Couples Sum", mM, n/2 );
  printf ( "\n The max is : [%d]\n\n", max );
  return 0;
}