由于两个函数的隐式声明错误,我在c程序main中使用下面列出的两个函数时遇到了问题。请有人请指教。 谢谢!
#include <stdio.h>
#include <stdlib.h>
float twoxaverage(int n, float t__scores[]);
float getaverage(int n, float t_scores[])
{ int sum=0; float average=0; int i;
for (i=0; i<n; i++)
{
sum=sum + t_scores[i];
}
average=(float)sum/(float)n;
return(average);
}
float twoxaverage(int n, float t__scores[])
{ float mult;
mult=2*(getaverage( n, t__scores));
return (mult);
}
int main()
{
int t_score[]={1,2,3,4};
float twox;
twox=twoaverage4,t_score);
float twoxaverage(int n, float t__scores[]);
return 0;
}
答案 0 :(得分:1)
你的主要应该离开:
int main(){
int t_score[] = { 1, 2, 3, 4 }; float twox;
twox = twoaverage4, t_score); float twoxaverage(int n, float t__scores[]);
return 0;
}
TO:
int main(){
int t_score[] = { 1, 2, 3, 4 };
float twox;
twox = twoxaverage(4, t_score);
return 0;
}
作为开始。
我也可以简化你的:
float getaverage(int n, float t_scores[]){
int sum=0; float average=0; int i;
for (i=0; i<n; i++){
sum=sum + t_scores[i];
}
average=(float)sum/(float)n;
return(average);
}
TO:
float getaverage(int n, float t_scores[]){
float average=0; int i;
for (i=0; i<n; i++){
average = average + t_scores[i];
}
return(average / (float)n);
}
这使用少一个变量并执行相同的数学运算。
答案 1 :(得分:0)
在此行中,您在一个标识符中至少有两个拼写错误
twox=twoaverage4,t_score);float twoxaverage(int n, float t__scores[]);
而不是
twox=twoaverage4,t_score);
应该有
twox = twoxaverage(4,t_score);
此外,不需要声明后面的函数。而不是
twox=twoaverage4,t_score);float twoxaverage(int n, float t__scores[]);
你可以写简单
twox = twoxaverage(4,t_score);
我认为你不仅要获得平均值,还要输出它。所以你至少可以添加声明
std::cout << twox << std::endl;
或者如果它是C程序,那么您可以使用printf
代替C ++ operator <<
来输出2x
还要考虑到您的功能getaverage是错误的。将float数字添加到sum
时,将浮点数转换为int float getaverage(int n, float t_scores[])
{ int sum=0; float average=0; int i;
for (i=0; i<n; i++)
{
sum=sum + t_scores[i];
}
average=(float)sum/(float)n;
return(average);
}
有效功能可以采用以下方式
float getaverage( int n, const float t_scores[] )
{
float sum = 0.0f;
for ( int i = 0; i < n; i++ )
{
sum += t_scores[i];
}
return ( n == 0 ? 0.0f : sum / n );
}
或者,如果您使用旧的C编译器,则该函数可以写为
float getaverage( int n, const float t_scores[] )
{
float sum = 0.0f;
int i = 0;
for ( ; i < n; i++ )
{
sum += t_scores[i];
}
return ( n == 0 ? 0.0f : sum / n );
}
函数twoxaverage可以通过以下方式简化
inline float twoxaverage( int n, const float t__scores[] )
{
return ( 2 * getaverage( n, t__scores ) );
}