如果此问题可以帮助您,请投票。 :)
我一直在寻找解决方案,但没有找到任何有用的解决方案。 我收到了错误: - C99中函数'sum'的隐式声明无效 - C99中函数'average'的隐式声明无效 - “平均”的冲突类型 有谁之前经历过这个吗?我正在尝试在Xcode中编译它。
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool
{
int wholeNumbers[5] = {2,3,5,7,9};
int theSum = sum (wholeNumbers, 5);
printf ("The sum is: %i ", theSum);
float fractionalNumbers[3] = {16.9, 7.86, 3.4};
float theAverage = average (fractionalNumbers, 3);
printf ("and the average is: %f \n", theAverage);
}
return 0;
}
int sum (int values[], int count)
{
int i;
int total = 0;
for ( i = 0; i < count; i++ ) {
// add each value in the array to the total.
total = total + values[i];
}
return total;
}
float average (float values[], int count )
{
int i;
float total = 0.0;
for ( i = 0; i < count; i++ ) {
// add each value in the array to the total.
total = total + values[i];
}
// calculate the average.
float average = (total / count);
return average;
}
答案 0 :(得分:9)
您需要为这两个函数添加声明,或者在main之前移动两个函数定义。
答案 1 :(得分:7)
问题在于,当编译器看到您使用sum
的代码时,它不知道具有该名称的任何符号。您可以转发声明来解决问题。
int sum (int values[], int count);
将其放在main()
之前。这样,当编译器看到第一次使用sum
时,它知道它存在并且必须在其他地方实现。如果不是那么它会发出线性错误。