[应用相关] 矢量相加

[复制链接]
 楼主| 正圆椭圆 发表于 2020-10-15 14:18 | 显示全部楼层 |阅读模式
我用的数组储存矢量,但是数组中多数值是0,为了方便储存,所以我就分别用val[]和pos[]来储存在数组中的值和位置。
现在我想在这个格式上让两个数组val1和val2相加并吧结果存到另一个数组val3,然后出现了问题
  1. void addEff(int val1[], int val2[], int val3[], int pos1[], int pos2[], int pos3[], int k1, int k2){
  2.         //access to each element in pos1[] and check if it has same position in pos2[]
  3.         //if pos2[]has smaller value of position, add val2[] first before add val1[]
  4.         int count=0;
  5.         int i=0;
  6.         int j=0;
  7.         while (i<k1){
  8.                 while (pos2[j]<=pos1[i]){
  9.                         if (pos2[j]<=pos1[i]){
  10.                                 val3[count]+=val2[j];
  11.                                 pos3[count]=pos2[j];
  12.                                 j++;
  13.                                 break;
  14.                         }
  15.                         val3[count]+=val2[j];
  16.                         pos3[count]=pos2[j];
  17.                         count++;
  18.                         j++;
  19.                 }
  20.                 val3[count]+=val1[i];
  21.                 pos3[count]=pos1[i];
  22.                 count++;
  23.                 i++;
  24.         }

  25. }
 楼主| 正圆椭圆 发表于 2020-10-15 14:20 | 显示全部楼层
k1是val1长度,k2是val2长度
如果是这样
  1.         int input_val1[] = {11,22,33};
  2.         int input_pos1[] = {1,2,7};
  3.         int input_val2[] = {44,55,66};
  4.         int input_pos2[] = {2,4,6};

那val3应该是
  1. int expected_output_val[6]={11,  66,  55,  66,  33,0};
  2.         int expected_output_pos[6]={1,   2,   4,   6,   7,0};
BettyBerry 发表于 2020-10-15 14:26 | 显示全部楼层
兄弟 注释咱能不打英文吗 你这个逻辑我有点搞不懂 所以你真正得出来的是什么 写得好乱啊 你用一下debug先看看问题出在哪吧
尼罗河L 发表于 2020-10-15 14:36 | 显示全部楼层
你是想先加val1然后再加val2是吧  这样你很容易出现加的位置不对的问题
为什么不直接另开一个数组专门运算 然后再吧那个数组变成你要的格式
凯复Kane 发表于 2020-10-15 18:00 | 显示全部楼层
会出现val1结束了但没有加完val2的情况
zhuomuniao110 发表于 2020-10-18 22:52 | 显示全部楼层
看不懂。
labasi 发表于 2020-11-12 17:03 | 显示全部楼层
这样做有些麻烦
paotangsan 发表于 2020-11-12 17:06 | 显示全部楼层
用指针多省事啊
renzheshengui 发表于 2020-11-12 17:08 | 显示全部楼层
这样分别操作容易出现问题
wakayi 发表于 2020-11-12 17:10 | 显示全部楼层
C中可以用数据链吗
wowu 发表于 2020-11-12 17:11 | 显示全部楼层
楼主修改代码了吗
caigang13 发表于 2020-11-12 18:43 来自手机 | 显示全部楼层
所以出现了什么问题?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

195

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

3

主题

195

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部