【发布时间】:2015-11-13 16:57:02
【问题描述】:
目前,第一个函数info() 可以正常工作并返回整个数组。这似乎也可以传递给kurtosis() 函数,因为我已经测试过每个元素是否在函数中手动打印。但是,当尝试通过循环打印每个元素时,它似乎只在第一次迭代中打印值;对于此后的迭代,它会打印0。奇怪的是,用常数替换 i 时仍然会发生这种情况。
#include <stdio.h>
double * info(){//function for obtaining up to 10 numbers
int i;
int x=0;
double numbers[10];
for (i = 1; i < 11; i++){
printf("\nPlease enter value %d:", i);
scanf("%lf", &numbers[i]);
x++;//counting number of entries
if(numbers[i] <0){//stops accepting numbers if user enters negative number
x--;
numbers[i] = -1;
break;
}
}
printf("%d numbers entered.\n", x);
return numbers;
}
double kurtosis(double * numbers){
int i, x;
double mean, numerator, denominator, sum;
for (i = 1; i < 11; i = i + 1){ //irrelevant loop; will be used later on
if (numbers[i] == -1){
x = i-1;
break;
}
}
for (i = 1; i < 10; i++){
printf("%lf\n", numbers[i]);//printing each value in the array
}
}
int main(void){
double * numbers = info();
double kurtno;
kurtno = kurtosis(numbers);//passing the array to the kurtosis function
}
【问题讨论】: