2017-04-25 44 views
1

我有一個項目供我上學的學校使用。我們必須劃分兩個數字,並顯示答案和餘數。該值在函數內是正確的,但是當我試圖通過main函數傳遞它時,它給了我錯誤的數字。感謝您的幫助項目幫助 - 無法通過函數傳遞值

#include <stdio.h> 
void division (int number, int divisor, int *quotient, int *remainder); 
int main(void) 
{ 
    int i, d, q, r; 
    int *quotient = &q; 
    int *remainder = &r; 
    printf("Enter an integer and divisor, separated by comma: "); 
    scanf("%d, %d", &i, &d); 

    division(i, d, quotient, remainder); 

    printf("%d divided by %d: quotient = %d, remainder = %d\n", i, d, 
     *quotient, *remainder); 
    return 0; 
} 

void division(int number, int divisor, int *quotient, int *remainder) 
{ 
    int a = number/divisor; 
    printf(" a = %d\n", a); 
    int b = number % divisor; 
    printf(" b = %d\n", b); 
    quotient = *a; 
    remainder = *b; 
} 
+3

'quotient = * a; remaining = * b;' - >'* quotient = a; *餘數= b;' – BLUEPIXY

+1

該代碼不能編譯 - 或者不應該編譯。 'a'由於'a'不是指針而無效。 –

回答

0

您正在分配函數中正確指定值。 嘗試 *商數= a; *餘數= b; 您正在通過引用進行傳遞,因此您需要將值分配給商和餘數。商品= * a;