首页 > 解决方案 > 检索和更新函数,用于在第三个数组中求和两个数组

问题描述

我是 c 编程的新手,我需要你的帮助。我有一个项目,其中给我三个数组 A、B、C,指针值为 1..10。我想使用检索和更新函数创建一个 C 程序,以实现数组 A:= B + C 的总和。

到目前为止我的代码,

int main(int argc, char** argv) {
    int v1[3],v2[3],v3[3];

    for(int i  = 0 ; i < 3; i++) {
      printf("Type a number for v1 :\t");
      scanf("%d", &v1[i]);

      printf("Type a number for v2 :\t");
      scanf("%d", &v2[i]);
      // Add here
      v3[i] = v1[i] + v2[i];
  }

  printf("\nResult Arr :\n");
  for(int i  = 0 ; i < 3; i++)
    printf("%d\n", v3[i]);
}

但我似乎完全错过了检索和更新功能。根据我的笔记,retrieve 函数等于retrieve(S, c, i)。变量 c 提供了组件 S 的值,该值对应于指针 i 的值。update(S, c, i) 将变量 c 的值提供给与指针 i 的值对应的数组 S 的分量。

关于如何解决这个问题的任何想法???

标签: arrayscsum2d

解决方案


你应该先尝试这两种方法retrieveupdate我很确定这是你的作业,而不是你发送的代码......无论如何,我的方法是,如果我正确理解你的作业,函数中的cinretrieve必须是一个指针设置的值array[i]c中的update必须是一个值。我正在展示如何进行检索,以及如何调用它。

#include <stdio.h>

int retrieve (int * array, int  *c, int i){
    if (array[i]==NULL){
        printf("i is out of range");
        return -1; // You could also return max integer for error purposes
    }
    *c = array[i];
    return 0; // Returned with no errors
}

int main(int argc, char** argv) {
    int v1[3],v2[3],v3[3];

    for(int i  = 0 ; i < 3; i++) {
      printf("Type a number for v1 :\t");
      scanf("%d", &v1[i]);

      printf("Type a number for v2 :\t");
      scanf("%d", &v2[i]);
      // Add here
      v3[i] = v1[i] + v2[i];
  }
  int c=1;
  retrieve(v1,&c,0);
  printf("%d",c);
  printf("\nResult Arr :\n");
  for(int i  = 0 ; i < 3; i++){
    printf("%d\n", v3[i]);
  }

}

推荐阅读