C数组中元素的总和

时间:2018-04-22 05:47:57

标签: c arrays

我今天刚刚开始学习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的建议。

2 个答案:

答案 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,请尝试