如何在C中获得数组中两个索引的和?

如何在C中获得数组中两个索引的和?,c,arrays,for-loop,C,Arrays,For Loop,我正在为具有动态大小的数组编写代码,并手动填充数组。然后,它将打印出来。它还将要求输入一个数字,并找到与这两个索引相等的索引 我正在为这段代码使用代码块。Id尝试for循环查找与输入的编号相等的两个索引 #include <stdlib.h> #include <stdio.h> void printArray(int *array, int size) { printf("["); for (int i = 0; i < size - 1; i

我正在为具有动态大小的数组编写代码,并手动填充数组。然后,它将打印出来。它还将要求输入一个数字,并找到与这两个索引相等的索引

我正在为这段代码使用代码块。Id尝试for循环查找与输入的编号相等的两个索引

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

void printArray(int *array, int size) {
    printf("["); 
    for (int i = 0; i < size - 1; i++) {
        printf("%i,", array[i]);

    }
    if (size >= 1)
        printf("%i", array[size-1]); 
        printf("]\n");

    int num;
    printf("Enter number to be calculate: ");
    scanf("%d",num);

    for(int i= 0; i < size - 1; i++){
        if (array[i] + array[size-1] == num){
            printf("%d  %d", array[i],array[size-1]);
        }
        size--;
    }
}

int main(void) {
    int count;
    int num;
    int sum;
    printf("Enter the size of the array:\n");
    scanf("%d", &count);

    int *array = malloc(count * sizeof(*array));
    if (!array) {
        printf("There was a problem you entered");
        exit(EXIT_FAILURE);
    }

    printf("Enter the elements of the array:\n");
    for (int i = 0; i < count; i++)
    scanf("%d", &array[i]);

    printArray(array, count);
}
#包括
#包括
无效打印数组(整数*数组,整数大小){
printf(“[”);
对于(int i=0;i=1)
printf(“%i”,数组[size-1]);
printf(“]\n”);
int-num;
printf(“输入要计算的数字:”);
scanf(“%d”,num);
对于(int i=0;i
我预计产出:

索引1和5与输入的数字相等。
但是它会产生错误。

首先,以下错误是问题之一-

scanf("%d",num);
应该是-

scanf("%d", &num);

printArray中的最后一个循环基本上是同时向上和向下遍历数组中的一个元素

因此,对于n=6,如果(a[0]+a[5])、(a[1]+a[4])或(a[2]+a[3])的和不等于所需的数字,它将显示为不匹配


此循环应替换为嵌套循环,以便内部循环从j=i+1迭代到size-1,以允许检查a[i]+a[j]==num所有可能的数组索引排列。

谢谢您,但我仍然无法添加两个索引。我找不到满足输入数字的索引。请提及您尝试过的输入。预期和实际输出。如果两个索引相加且总和等于输入的数字,则将打印这两个索引。如果没有,它将不打印数据匹配。此链接可能会有所帮助。这是正确的代码吗?对于(inti=0;i