在C中乘以数字

时间:2013-05-26 07:37:22

标签: c types printf specifier

我写了下面的代码来乘以两个数字,我看到结果不正确。我假设数据类型没有保持正确的值。但答案是打印不正确。

#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;
}

输出:
17897 //这不是正确答案
//它实际上应该是1525225

1 个答案:

答案 0 :(得分:11)

数据类型保持正确的值,但您使用的是错误的说明符。你应该使用%ld和long int。

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

我仔细检查过它。