解释示例代码(c编程)

时间:2014-08-13 12:18:19

标签: c

以下代码来自c编程教程。目的是找到10个浮点值的平均值。

#include <stdio.h>

void avg(double *d, int num);

int main(void)
{
    double nums[]={1.0,2.0,3.0,4.0,5.0,
                   6.0,7.0,8.0,9.0,10.0}

    avg(nums,10);

    return 0;
}

void avg(double *d, int num)
{
    double sum;
    int temp;

    temp=num-1;

    for(sum=0;temp>=0;temp--)
        sum=sum+d[temp];
    printf("Average is %f", sum/(double)num);
}

第23行使用d [temp]时会发生什么。

4 个答案:

答案 0 :(得分:1)

d[temp]表示访问temp指向的数组的d元素。即d指向至少 temp+1 double的数组,并且您希望检索其中temp个。

答案 1 :(得分:1)

sum=sum+d[temp]

您正在访问双数组temp的每个d元素。

如果您有3个号码

temp=num-1; // temp =2

for(sum=0;temp>=0;temp--)
    sum=sum+d[temp];

将扩展为 -

sum=0+d[2]; then temp becomes 1 // you are adding 2nd element with sum
sum=sum+d[1]; then temp becomes 0 // here you are adding with previous result // First element + sum
sum=sum+d[0]; then temp becomes -1 // condition fails // 0th element + sum

只是 -

sum=d[2]+d[1]+d[0];

答案 2 :(得分:0)

第23行

d[temp]将获取索引的浮点数据  temp中的nums  阵列

在另一个术语中,d[temp]将替换为temp + 1数组的nums元素。

答案 3 :(得分:0)

你迭代你的nums [] - 数组,在这一行,你将所有值添加到你的某个变量。 d [temp]访问索引temp的项目值。