2013-02-11 56 views
0

我刚刚得到这个,当我尝试运行它 error: expected ‘;’, ‘,’ or ‘)’ before ‘&’ token通过引用传递与C不同的C?

它在抱怨这条线

int read_values(double &sum) { 

,所以我想通过总和,然后直接编辑。你如何在C中做到这一点?多谢你们。

#include <stdio.h> 

/* 
    Read a set of values from the user. 
    Store the sum in the sum variable and return the number of values read. 
*/ 
int read_values(double &sum) { 
    int values=0,input=0; double sum2=0; 
    sum2 = sum; 
    printf("Enter input values (enter 0 to finish):\n"); 
    scanf("%d",&input); 
    printf("%d\n", input); 
    while(input != 0) { 
    values++; 
    sum2 += input; 

    scanf("%d",&input); 
    } 

    return values; 
} 

int main() { 
    double sum=0; 
    int values; 
    values = read_values(sum); 
    printf("Average: %g\n",sum/values); 
    return 0; 
} 
+0

惠康左右。询问前请检查此网站和您的搜索引擎是否有类似的问题。这是一个可能的重复[在C?下传递指针参数](http://stackoverflow.com/questions/1825794/passing-pointer-argument-by-reference-under-c) – 2013-02-11 23:17:53

回答

3

C不做引用,只有原始指针。

main() { 
    ... 
    values = read_values(&sum); 
    ... 
} 


int read_values(double* sum) 
{ 
    ... 
    sum2 = *sum; 
    ... 

} 
1

我想你想做到这一点:

int read_values(double *sum) { 
    int values=0,input=0; 
    printf("Enter input values (enter 0 to finish):\n"); 
    scanf("%d",&input); 
    printf("%d\n", input); 
    while(input != 0) { 
    values++; 
    *sum += input; 
    scanf("%d",&input); 
    } 
    return values; 
} 

int main() { 
    double sum=0; 
    int values; 
    values = read_values(&sum); 
    printf("Average: %g\n",sum/values); 
    return 0; 
} 
+0

也正确,我'你们都投了票,但它不会让我。 – user2054534 2013-02-11 23:06:28