我今天刚刚开始学习C语言,因为之前我只使用过Python,所以不习惯语法。我有这个任务。
编写一个函数,返回大小为10的num_array中前n个数字的总和。如果n是无效数字(即不在0到10之间),则返回值-1而不是表示错误。
这是我的尝试,由于某种原因无效。我没有合适的IDE来检查我的代码,因为我不知道任何适合初学者的免费新手友好IDE。谁能告诉我这里出了什么问题?
int num_array[10] = {3, 4, 6, 1, 0, 9, 8, 6, 2, 5};
int nth_sum_of_num_array(int n) {
if !(0 <= n <= 10) {
return -1;
}
else {
int result = 0;
for (int i = 0; i < n; i++) {
result += num_array[i];
}
return result;
}
}
我也很欣赏有关带编译器的免费和新手友好C IDE的建议。
答案 0 :(得分:2)
这可能适用于python:
if !(0<=n<=10)
但不在C.这就是你在C中的表现:
if (n <= 0 || n >= 10) {
每个条件必须由逻辑运算符分隔。
答案 1 :(得分:2)
您只需要更改条件:
#include <stdio.h>
int num_array[10] = {3, 4, 6, 1, 0, 9, 8, 6, 2, 5};
int nth_sum_of_num_array(int n) {
if (n > 9|| n < 0) {
return -1;
} else {
int result = 0;
for (int i = 0; i < n; i++) {
result += num_array[i];
}
return result;
}
}
int main(void) {
printf("The result is %d", nth_sum_of_num_array(6));
}
BTW,对于一个好的C IDE,请尝试clion。