2013-02-11 55 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