c programe 問題

write a function,named getNumSum (),for accumulating (summing) float numbers:

~the function has no return value

~the function has 1 input argument named aSum:the current accumulative sum to be "updated"inside this function(Hint:use pass by reference)

~the function asks user for a float input,then updates the accumulative sum(*no code for input validation needed)

我想問下點做?

2 個解答

評分
  • 8 年前
    最愛解答

    由於function執行完後變數會被清除

    我們需要使用指標或全域變數來儲存目前累積的數目

    全域變數在main()的範圍外

    如果不能用float就把他們全換了single

    #include <你要用的函式庫>

    float sum; //目前累積數目

    void getNumSum(float aSum)

    {

    sum += aSum; //全域變數sum數值加aSum

    }

    int main()

    {

    sum=0;

    getNumSum(10); //累計數目加十

    getNumSum(52); //累計數目加五十二

    }

    只有一個argument(參數),

    就只能用全域變數了

  • John
    Lv 7
    8 年前

    #include <stdio.h>

    void getNumSum(float *sum) {

    float input;

    scanf("%f", &input);

    *sum += input;

    }

    int main(void)

    {

    float sum = 0;

    getNumSum(&sum);

    getNumSum(&sum);

    printf("%f", sum);

    return 0;

    }

還有問題嗎?立即提問即可得到解答。