| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 859 人关注过本帖
标题:新手,三个问题请教
只看楼主 加入收藏
punish
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-2-9
收藏
 问题点数:0 回复次数:9 
新手,三个问题请教

1.
main ()
{
int a;
long b;
a=32767;
b=a+1;
printf ("%d:%d\n",a,b);
}

这段为什么我在DEV上面可以正确看到结果,而在TC上面等于的还是负32768

2.就是比大小那个,

main ()

{
int a,b,c ;
scanf ("%d,%d",);
c=max (a,b);
printf ("max=%d",c);
}
int max (int x,int y);
{
if (x>y) z=x;
else z=y;
return (z);
}

上面不是比过了吗?后面那段是什么意思
int max (int x,int y);
{
if (x>y) z=x;
else z=y;
return (z);
}
为什么我比三个数的时候max (c,max (a,b));
下面那段还是一样呢?
{
if (x>y) z=x;
else z=y;
return (z);
}
这段到底怎么解,希望高手帮忙;

3.还有一个问题,DEV-C++里面到底怎么设置可以不用在代码最后
不用加system ("pause");
我听人说可以
好像在软件里面可以设置是吗?
就是不加这个,运行后结果就是一闪而过,

[此贴子已经被作者于2006-2-18 21:28:59编辑过]

搜索更多相关主题的帖子: int max else 
2006-02-18 21:21
aiyuheng
Rank: 1
等 级:新手上路
威 望:1
帖 子:656
专家分:0
注 册:2006-1-12
收藏
得分:0 
我记得以前跟你说过的,去看看函数那章就知道了.

when i want to ask anyone,i will ask myself first.
2006-02-18 21:34
punish
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-2-9
收藏
得分:0 
看了不明白,希望老大讲一下,真的不明白,说不定以后也会有新人不明白
2006-02-18 21:52
aiyuheng
Rank: 1
等 级:新手上路
威 望:1
帖 子:656
专家分:0
注 册:2006-1-12
收藏
得分:0 
1.每个工具都有地方不同,这个不必太在意.
2.max是你定义的函数,后面的那部分就是函数的定义,说明它是怎么工作的.而在主函数中则是调用你的max函数.max这个函数有两个参数,(a,b)返回一个int 的值 而max (c,max (a,b));应该是先在a和b之中选出大的返回然后再和c比较,其实应该写成d= max (c,max (a,b));这样就将三个数最大的给了d.
函数要调用,必须先定义,再使用.或是在前面声明,之后再定义.这个也就是C语言结构化就是由函数组成的.
3.可以加上getch();是接收个字符,不回显,可以去掉那个system ("pause");了
那个工具没用过,所以不知道怎么设置,其实那些对程序都没什么实在的意思。
希望你认真看书。
我也菜鸟一个

when i want to ask anyone,i will ask myself first.
2006-02-18 23:03
上帝的牙齿
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-2-19
收藏
得分:0 

main ()

{
int a,b,c ;
scanf ("%d,%d",);
c=max (a,b);
printf ("max=%d",c);
}
int max (int x,int y);
{
if (x>y) z=x;
else z=y;
return (z);
}



调用的函数max在主函数后面,报错了就!

2006-02-19 10:45
aiyuheng
Rank: 1
等 级:新手上路
威 望:1
帖 子:656
专家分:0
注 册:2006-1-12
收藏
得分:0 
在前面声明一下就行了

when i want to ask anyone,i will ask myself first.
2006-02-19 11:03
wengych
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-2-19
收藏
得分:0 
第一个题目呢。。其实还是关心一下吧
计算机对数字进行处理时是转换为二进制的
我们为了方便直观的用计算机的思路对待数字,于是就有了16进制
16进制与二进制的转换是非常方便的
比如FF,那即表示二进制的11111111
如果你对这方面有兴趣可以到网上找一个BCD码表,可以通过码表直接查找16<->2的转换

我们知道计算机最早是由8位机发展起来的
所谓8位,即是指CPU一次处理的2进制数是8位的,表示成16进制数就是FF = 256
这样的处理能当然不高,所以又出现了16位的CPU,最多能处理的数字就是FF FF=65535
现在我们所使用的大多数PC的CPU就更高级了,32位,用以表示FF FF FF FF
这是一个相当大的数字,大概26亿多吧。。。恩,这个我比较懒了,所以也没查,有兴趣自己GOOGLE一下

上面提到的数字均是在无符号情况下对应的十进制数字,也就是说,在不需要处理负数时计算机所能表示的最大数字。可是实际情况通常没有这么理想,对于处理负数,计算机所采用的方式与普通人通常的思考方式也有区别,我能举出的例子仅为:FF FF = -1(时间久远,记不太清如何转换,只是知道2进制最高位是1表示为负)。所以,当你赋值给B 32768时,就会出现问题了。原因即是,TC的编译器采用的是16位的数字存储。
TC所产生的年代比较久远,产生这样的问题不足为奇。如果DEV-CPP这样的IDE有问题才叫奇怪咯。

第二个问题嘛。。。涉及到了函数的概念啦
当你需要使用一个函数时,必须先存在这个函数
注意,必须先存在,可以用两中方式告诉编译器该函数的存在
一:在使用前定义他,即将max函数放到main之前
二:使用前声明他

打字打得有点累了。。。
第三个问题其实也比较好理解,system就是调用一个系统命令,你在DOS窗口敲PAUSE就明白了。
同理,你可以调用system("dir");
就明白了system是干什么用的了
该函数的目的就是为了让窗口能够在程序运行完成之后还继续显示
如果想解决这个问题也很容易,开个DOS窗口,将目录切换到该程序所在目录,运行之
程序结束后DOS窗口是不会被关掉啦,否则窗口是会随着程序的结束而关闭的。

系统工程师,主要从事基于SUN服务器的系统集成 爱好编程,C/C++/JAVA Debian
2006-02-19 11:33
punish
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-2-9
收藏
得分:0 
谢谢各位了
2006-02-19 14:43
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

大家说这么多了,我就加一点好了
第一题 既然把b 定义为long型
为什么后来输出的时候b对应的是%d 而不是%ld ?


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-19 22:23
zhou
Rank: 1
等 级:禁止发言
帖 子:429
专家分:0
注 册:2006-6-16
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-03-30 14:00
快速回复:新手,三个问题请教
数据加载中...
 
   



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

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