首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C:两个数组的除法

C:两个数组的除法
EN

Stack Overflow用户
提问于 2017-09-26 06:08:06
回答 2查看 794关注 0票数 0

我有两个int类型的数组。每个元素大约有17901个元素长。一个表示高度,另一个表示空速。我想将这两个数组相除(这个除法将得到马赫数)。我该怎么做呢?

这是我现在使用的代码:

代码语言:javascript
复制
for (i = 0; i < ((size / 2) + 1); i++) {    // size/2 here is 17901
    machNumber[i] = (ASarray[i] / soundspeed[i]); 
}
EN

回答 2

Stack Overflow用户

发布于 2017-09-26 06:22:57

用计算出的大小sizeof(ASarray)/sizeof(*ASarray)替换((size/2)+1

这样,就不会有关于循环的疑问了。当然,ASarray的大小必须是静态定义的(内存不能是用malloc分配的)。

代码语言:javascript
复制
for(i = 0; i < sizeof(ASarray) / sizeof(*ASarray); i++) {
  machNumber[i] = (ASarray[i] / soundspeed[i]);
}
票数 1
EN

Stack Overflow用户

发布于 2017-09-26 06:27:08

将大小减半并不能正确计算元素的数量:您应该将数组的大小除以其元素的大小(两者均以字节为单位)。此外,如果machNumber是浮点类型,而ASarraysoundspeed都不是浮点类型,则需要进行强制转换来计算正确的马赫值:

代码语言:javascript
复制
for (size_t i = 0; i < sizeof(ASarray) / sizeof(ASarray[i]); i++) {
    machNumber[i] = (double)ASarray[i] / soundspeed[i]; 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46414918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档