这就是我从一开始就给予的。
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;
}
答案 0 :(得分:2)
你的功能看起来很好。使用提供给您的原始main()而不做任何更改。你的函数原型
int calculate_sum(int*, int);
应该高于你的主要和功能。如果你在一个文件中写这个,那么原型的一个好地方就在你的#include语句之下。
答案 1 :(得分:1)
你的问题是你的功能声明,
int calculate_sum(int, int);
与您的函数定义不匹配,
int caluculate_sum(int *a, int size)
(请注意,名称在定义中拼写错误,第一个参数的类型不同 - 它必须是声明中的指针。)
通常,as MahlerFive points out,最好在定义它们之前声明所有函数,而不是将函数声明放在其他函数中。
答案 2 :(得分:0)
没有测试过它..但我想这会起作用
#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;}