打印
[应用相关]

矢量相加

[复制链接]
349|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
正圆椭圆|  楼主 | 2020-10-15 14:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的数组储存矢量,但是数组中多数值是0,为了方便储存,所以我就分别用val[]和pos[]来储存在数组中的值和位置。
现在我想在这个格式上让两个数组val1和val2相加并吧结果存到另一个数组val3,然后出现了问题
void addEff(int val1[], int val2[], int val3[], int pos1[], int pos2[], int pos3[], int k1, int k2){
        //access to each element in pos1[] and check if it has same position in pos2[]
        //if pos2[]has smaller value of position, add val2[] first before add val1[]
        int count=0;
        int i=0;
        int j=0;
        while (i<k1){
                while (pos2[j]<=pos1[i]){
                        if (pos2[j]<=pos1[i]){
                                val3[count]+=val2[j];
                                pos3[count]=pos2[j];
                                j++;
                                break;
                        }
                        val3[count]+=val2[j];
                        pos3[count]=pos2[j];
                        count++;
                        j++;
                }
                val3[count]+=val1[i];
                pos3[count]=pos1[i];
                count++;
                i++;
        }

}

使用特权

评论回复
沙发
正圆椭圆|  楼主 | 2020-10-15 14:20 | 只看该作者
k1是val1长度,k2是val2长度
如果是这样
        int input_val1[] = {11,22,33};
        int input_pos1[] = {1,2,7};
        int input_val2[] = {44,55,66};
        int input_pos2[] = {2,4,6};

那val3应该是
int expected_output_val[6]={11,  66,  55,  66,  33,0};
        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是吧  这样你很容易出现加的位置不对的问题
为什么不直接另开一个数组专门运算 然后再吧那个数组变成你要的格式

使用特权

评论回复
5
凯复Kane| | 2020-10-15 18:00 | 只看该作者
会出现val1结束了但没有加完val2的情况

使用特权

评论回复
6
zhuomuniao110| | 2020-10-18 22:52 | 只看该作者
看不懂。

使用特权

评论回复
7
labasi| | 2020-11-12 17:03 | 只看该作者
这样做有些麻烦

使用特权

评论回复
8
paotangsan| | 2020-11-12 17:06 | 只看该作者
用指针多省事啊

使用特权

评论回复
9
renzheshengui| | 2020-11-12 17:08 | 只看该作者
这样分别操作容易出现问题

使用特权

评论回复
10
wakayi| | 2020-11-12 17:10 | 只看该作者
C中可以用数据链吗

使用特权

评论回复
11
wowu| | 2020-11-12 17:11 | 只看该作者
楼主修改代码了吗

使用特权

评论回复
12
caigang13| | 2020-11-12 18:43 | 只看该作者
所以出现了什么问题?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

195

帖子

1

粉丝