2

我编写了以下代码来将两个数字相乘,但我发现结果不正确。我假设数据类型的值不正确。但其打印的答案是不正确的。

#include<stdio.h>
main()
{
    long int val1,val2;
    val1=val2=1235;
    char c = 'y';
    switch(c)
    {
        case 'y' : printf("%20d",val1*val2);
            break;
        default: printf("invalid");
            break;
    }
    return 0;
}

OUTPUT :
17897 //这不是正确的答案
//实际上应该是 1525225

4

1 回答 1

11

数据类型持有正确的值,但您使用了错误的说明符。您应该使用%ldlong int。

printf("%20ld",val1*val2);

我仔细检查并成功了。

于 2013-05-26T07:41:31.997 回答