c - C 中的数字相乘

标签 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

最佳答案

数据类型持有正确的值,但您使用了错误的说明符。您应该将 %ld 与 long int 一起使用。

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

我仔细检查了一下,它成功了。

关于c - C 中的数字相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16757127/

相关文章:

c++ - OS X Lion 上的 libplist 编译错误 : string. h not found

c - 如何从文本文件中读取单词并添加到字符串数组中?

c++ - 对原子变量的非原子操作,反之亦然

php - mysql_fetch_array() 的返回数据和类型

assembly - 使用 printf 在汇编 NASM 中打印数字

c - 使用 fread 从 Matlab 读取所有字符到嵌入式设备

ios - 如何让我的应用程序显示在“打开于...”菜单中。加速器

c++ - 为什么remove_reference 对函数不起作用?

c - Printf正在打印2个变量的内容

c++ - 显示 unsigned char 的第一个字符*