scanf调用中类型的操作数无效

时间:2012-09-14 00:41:48

标签: c

当我编写下面的程序时,我收到此错误,我无法弄清楚原因。

39:19: error: invalid operands of types ‘const char [5]’ and ‘long long int’ to binary ‘operator&’

这是代码。

int
main(void)
{
    long long d, p; 

    // Ask for number for the numbers of  days as long as input is between 28 and 31
    do  
    {
       printf("How many days are in your month?\n");
       scanf("%lld" &d);    // This is the line with the error
    }   
    while (d<28 || d>31);

    // Ask user for number of pennies for day 1 as long as input is not negative
    printf("How many Pennies do you have?\n");
    do
    {
        scanf("%lld", &p);    
    }
    while (p<0);

    //sum up the pennies
    int i;
    for (int i=0; i<=d-1; i++);
    {
        p = (p * 2);
    }

    // Format and print the total  (currently * instead of / for troube-shooting)
    double total;
    total = (p * 100);
    printf("Your ending amount it $%.2f.\n, total");        
}

2 个答案:

答案 0 :(得分:3)

应该是

scanf("%lld", &d); //not scanf("%lld" &d);

答案 1 :(得分:2)

您忘记了scanf("%lld" &d);中的逗号。这导致它将scanf的参数解释为某些字符BITAND与数字的结果。

将其更改为:

scanf("%lld", &d);