C编程如何将数学运算的结果存储在不同的数组中

  • 本文关键字:存储 结果 数组 运算 编程 arrays c
  • 更新时间 :
  • 英文 :


我正试图从一个数组中减去一个给定的数字,然后将结果存储在一个完全不同的数组中。是否可以在不使用指针的情况下编写代码?

我正在尝试使用for循环和/或do/while循环来编写代码。

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){
int num[100];
int i ;
int size;
int sub;
int diff[100];
printf("Enter the size of the array: ");
scanf("%d", &size);
for(i=0;i<size; i++){
printf("Enter the  element %d :", i+1);
scanf("%d", &num[i]);
}
printf(" Enter the number to substract: n");
scanf("%d", &sub);
for (i=0;i<size; i++)
{
y = num[i]- sub;
scanf("%d", &diff[y]);
}
for (y=0; y<size; y++)
{
printf("%d", diff[y]);
}
}

扫描结果后,我尝试了不同的方法来初始化并将值存储在第二个数组中,但都没有成功。我在这里犯了什么错误?

y = num[i] - sub;

这很好,因为它是给定源数组元素的相减结果。

scanf("%d", &diff[y]);

这没有意义,因为它试图读取用户的输入。不仅如此,它还使用减法的结果作为目标数组的索引。

只需将减法的结果分配给相应的目标数组成员:

diff[i] = num[i] - sub;

在您的问题中,您试图将值扫描到另一个数组,但正确的形式是将值分配到新的数组位置。

例如,在第一个For循环中,使用i变量作为位置,并在diff[i]:上分配num[i] - sub

for (i = 0; i < size; i++)
{
diff[i] = num[i] - sub;
}

而不是:

for (i=0;i<size; i++)
{
y = num[i]- sub;
scanf("%d", &diff[y]);
}

最新更新