当前位置: 代码迷 >> C语言 >> 新手,三个问题请教
  详细解决方案

新手,三个问题请教

热度:102   发布时间:2006-02-18 21:21:00.0
新手,三个问题请教

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  

----------------解决方案--------------------------------------------------------
我记得以前跟你说过的,去看看函数那章就知道了.
----------------解决方案--------------------------------------------------------
看了不明白,希望老大讲一下,真的不明白,说不定以后也会有新人不明白
----------------解决方案--------------------------------------------------------
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");了
那个工具没用过,所以不知道怎么设置,其实那些对程序都没什么实在的意思。
希望你认真看书。
我也菜鸟一个
----------------解决方案--------------------------------------------------------

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在主函数后面,报错了就!


----------------解决方案--------------------------------------------------------
在前面声明一下就行了
----------------解决方案--------------------------------------------------------
第一个题目呢。。其实还是关心一下吧
计算机对数字进行处理时是转换为二进制的
我们为了方便直观的用计算机的思路对待数字,于是就有了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窗口是不会被关掉啦,否则窗口是会随着程序的结束而关闭的。
----------------解决方案--------------------------------------------------------
谢谢各位了
----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
  相关解决方案