| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 510 人关注过本帖
标题:[求助]为什么这个条件不执行?
只看楼主 加入收藏
走火
Rank: 1
等 级:新手上路
帖 子:426
专家分:0
注 册:2005-12-28
收藏
 问题点数:0 回复次数:6 
[求助]为什么这个条件不执行?

int shi;
scanf("%d",shi);
if (shi>32767)
printf("error.");

为什么当我输入32768时这个条件不执行,
是不是因为32768属于long型,给shi负值时要临时转化成int型 ,
所以shi=-1 了,这样对吗?

[此贴子已经被作者于2006-9-3 9:13:57编辑过]

搜索更多相关主题的帖子: 条件 
2006-09-03 09:12
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-09-03 09:15
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用走火在2006-9-3 9:12:34的发言:

int shi;
scanf("%d",&shi);
if (shi>32767)
printf("error.");

常见错误

2006-09-03 09:16
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-09-03 09:18
走火
Rank: 1
等 级:新手上路
帖 子:426
专家分:0
注 册:2005-12-28
收藏
得分:0 
谢谢大家

我回去试看看到底转换成什么了哈

我是一只小菜鸟,请大家多多照顾! QQ 87135637
2006-09-03 10:49
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

如果您想检验一个数字是否溢出,那个程序是不行的.
#include "Stdio.h"
#include "stdlib.h"
#include "values.h"
int main(void)
{
char str[20];
int num;
gets(str);
if(atol(str)>MAXINT)
printf("error");
else
{
num=atoi(str);
printf("%d",num);
}
return 0;
}


对不礼貌的女生收钱......
2006-09-03 10:55
走火
Rank: 1
等 级:新手上路
帖 子:426
专家分:0
注 册:2005-12-28
收藏
得分:0 
谢谢大家,我终于明白了
原来(负数)符号位得到源码时也要取反,
我以前以为符号位就只起代表符号的作用,
不进行运算,所以遇到这种情况时就犯错了.

我是一只小菜鸟,请大家多多照顾! QQ 87135637
2006-09-03 13:56
快速回复:[求助]为什么这个条件不执行?
数据加载中...
 
   



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

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