arrays - 检索和更新函数,用于在第三个数组中求和两个数组
问题描述
我是 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 的分量。
关于如何解决这个问题的任何想法???
解决方案
你应该先尝试这两种方法retrieve
,update
我很确定这是你的作业,而不是你发送的代码......无论如何,我的方法是,如果我正确理解你的作业,函数中的c
inretrieve
必须是一个指针设置的值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]);
}
}
推荐阅读
- c++ - 在无限循环上运行的单链表中插入
- spring - Spring Cloud Dataflow - 处理任务中的参数
- javascript - Service Worker 仅在添加“index.html”时从缓存中获取 url
- javascript - 更改路由时如何在 React 组件的 CSS 样式之间切换?
- typescript - Ionic 4 离子输入只允许数字,限制字母和特殊字符
- python - 如何使独立编译的 cython 包使用共享随机数生成器?
- azure - 停止在 Azure 订阅上创建资源
- rstudio - 如何在我的 rstudio 针织 html 中有两行标题
- redis - 我如何找出我的密钥存储在 Redis Cache/db 中的时间?
- selenium - ChromeOptions --headless 在 Selenium 3.5.3 中无效