微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C:减去数组

如何解决C:减去数组

我有三个数组。

int Aarr[31];
int Barr[12];
int Carr[];

我想用Aarr中的每个元素减去Barr中的每个元素,并将其分配给Carr

for(int i=0; i<32; i++){
Carr[i]=Aarr[i]-Barr[i];
}

由于Barr中的整数较少,因此Aarr的减法不正确。

我应该如何编写代码,以便每次代码到达Barr的末尾时,代码都从Barr的开始处开始,而Aarr则从原来的位置开始继续?

解决方法

下面,我将介绍一个更简单的示例。

因此,您要嵌套for循环一个,使其在Aarr上进行迭代,而第二个则在Barr上进行迭代,然后将其分配给Carr

以下内容可以做到这一点:

#include <stdio.h>

int main()
{
    int Aarr[5] = {19,10,8,17,9};
    int Barr[2] = {1,3};
    int Carr[5*2];
    
    for (int i=0; i<5; i++){
        for (int j=0;j<2;j++) {
            Carr[i * 2 + j] = Aarr[i] - Barr[j];
        }
    }
    for(int loop = 0; loop < 10; loop++)
      printf("%d ",Carr[loop]);

    return 0;
}

打印循环将为您提供:

18 16 9 7 7 5 16 14 8 6 

这正是Aarr中每个元素对Barr中每个元素的替代

请注意以下几点:

  1. 您应该以{{1​​}}开头的大小是两个数组大小的乘积。
  2. 如果您的数组具有Carr个值,则应该从0开始索引,直到k为止。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。