函数功能
根据给定参数条件获取等差数列
参数说明
- start:起始数字
- stop:结束数字
- num:数列中数字个数
- endpoint:是否包含结尾
结果样例:
-
输入:myLinspace(0, 10, 7, true)
-
结果:[0.00,1.67,3.33,5.00,6.67,8.33,10.00]
-
输入:myLinspace(0, 10, 7, false)
-
结果:[0.00,1.43,2.86,4.29,5.71,7.14,8.57]
代码
float* myLinspace(float start, float stop, int num, bool endpoint) {
//获得等差数列
//start:起始数
//stop:截止数
//num:个数
//endpoint:是否包含末位
float* returnArr = NULL;
float move = 0;
returnArr = (float*)malloc(sizeof(float)*num);
if (returnArr == NULL) {
printf("myLinspace:\nreturnArr = NULL\n");
return NULL;
}
memset(returnArr,0, sizeof(float) * num);
if (endpoint) {
move = (stop - start) / (num-1);
}
else {
move = (stop - start) / (num);
}
returnArr[0] = start;
for (int i = 1;i<num;i++) {
returnArr[i] = returnArr[i - 1] + move;
}
return returnArr;
}