| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 12132 人关注过本帖
标题:%d和%ld输出的不同
只看楼主 加入收藏
f2313660764
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2018-11-14
结帖率:14.29%
收藏
 问题点数:0 回复次数:4 
%d和%ld输出的不同
两段一样的代码 ,只是输出%ld和%d的差别  为什么一个能通过,一个不能通过,但是显示出来的答案是相同的
#include<stdio.h>
int main()
{
    int n,i;
   long a=1;
    scanf("%d",&n);
    if(n==0)  printf("0!=0");
    else {
    for(i=1;i<=n;i++)
   
        a=a*i;
   
    printf("%d!=%ld[/u][/u][/code]",n,a);
    }
    return 0;
}


#include<stdio.h>
int main()
{
    int n,i;
   long a=1;
    scanf("%d",&n);
    if(n==0)  printf("0!=0");
    else {
    for(i=1;i<=n;i++)
   
        a=a*i;
   
    printf("%d!=%d",n,a);
    }
    return 0;
}
搜索更多相关主题的帖子: 输出 不同 int scanf printf 
2018-11-14 12:32
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
收藏
得分:0 
%ld用来输出长整型数。
%d用来输出整型数。

%ld 的话 输出的字节要长点, %d 的要短点。比如,一个数大于32767 用%d 就要溢出。假如你想输出32768.用%d 就会输出-1.这就是溢出。但是用%ld 就不会。它能接受的数的范围大些!

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-11-14 13:42
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
收藏
得分:0 
ld 是long int

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-11-14 13:43
f2313660764
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2018-11-14
收藏
得分:0 
回复 2楼 Tomorrw_I
谢谢大佬
2018-11-25 19:39
wlxy_wang
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:77
专家分:303
注 册:2018-11-2
收藏
得分:0 
以下是引用Tomorrw_I在2018-11-14 13:43:05的发言:

ld 是long int

long int是错误提法,C语言中没有这种数据类型。long和short是C语言中的整形数据,在不同的编译期中,16位编译器int型是short,32位编译器int型是long.
2018-11-26 11:12
快速回复:%d和%ld输出的不同
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017836 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved