Напишите функцию int caluculate_sum (int * a, int size), которая вычисляет сумму всех элементов в массиве. - PullRequest
0 голосов
/ 03 декабря 2009

Это то, что мне дали для начала.

     int main(){
      int a[5] = {0,1,2,3,4};
      printf("Sum of elements of a: %d\n", calculate_sum(a,5));
      return 0;          
     }

Вот что у меня есть, я не знаю, почему это не работает, пожалуйста, помогите мне.

#include <stdio.h>

int main()
{
      int a[5] = {0,1,2,3,4};
      int b;
      int calculate_sum(int, int);
      b = *a;

      printf("Sum of elements of a: %d\n", calculate_sum(b,5));
      return 0;          

}

int caluculate_sum(int *a, int size) 
{
    int i;
    int sum = 0;
    for(i = 0; i < size; i = i + 1)
        sum = sum + a[i];
    return sum;
}

Ответы [ 3 ]

2 голосов
/ 03 декабря 2009

Ваша функция выглядит хорошо. Используйте оригинальную функцию main (), которая была вам дана без каких-либо изменений. Прототип вашей функции

int calculate_sum(int*, int);

должно быть выше вашего основного и функций. Если вы пишете все это в одном файле, хорошее место для прототипов ниже ваших утверждений #include.

1 голос
/ 03 декабря 2009

Ваша проблема в том, что объявление вашей функции,

int calculate_sum(int, int);

не соответствует определению вашей функции,

int caluculate_sum(int *a, int size) 

(обратите внимание, что имя неправильно указано в определении, а тип первого параметра отличается - он должен быть указателем в объявлении).

Как правило, как указывает MahlerFive , рекомендуется объявлять все ваши функции перед их определением и не размещать объявления функций внутри других функций.

0 голосов
/ 03 декабря 2009

Не проверял это .. но я думаю, это будет работать

#include <stdio.h>

int calculate_sum(int, int);
int main(){ 
int a[5] = {0,1,2,3,4};      
//int b;         
//b = *a;      
//printf("Sum of elements of a: %d\n", calculate_sum(b,5));
printf("Sum of elements of a: %d\n", calculate_sum(a,5)); // you can directly pass an array     
return 0;          
}

//int caluculate_sum(int *a, int size) {
int caluculate_sum(int a, int size) {    
int i;    int sum = 0;    
for(i = 0; i < size; i = i + 1)        
sum = sum + a[i];    
return sum;}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...