哪位高手帮我分析一下谭浩强的 c程序设计函数调用,输入两个数,输出大者,为什么用vc++6.0运行不起作用?

> 小弟我在visualc++6.0下运行这个程序,运行不出来。哪位高手能帮帮小弟我,多谢啦
小弟我在visualc++6.0下运行这个程序,运行不出来。哪位高手能帮帮小弟我,多谢啦
wiwimao & &
发布时间: & &
浏览:50 & &
回复:7 & &
悬赏:0.0希赛币
我在visualc++6.0上运行这个程序,运行不出来。谁能帮帮我,谢谢啦请问这道题目:#include&stdio.h&main(){ & &
scanf(&%d&,x-5); &
if (x&15) printf(&%d&,x-5); &
if (x&10) printf(&%d&,x); &
if (x&5) printf(&%d\n&,x+5); &
}若程序运行时从键盘输入12《回车》,则输出结果是多少?我在visualc++6.0上运行这个程序,运行不出来。谁能帮帮我,谢谢啦
  C/C++ code  scanf(&%d&,x-5);//楼主不能这样输入,这样输入格式不对
wiwj1120 & &
& & (0)(0)设个断点慢慢调试
wizard & &
& & (0)(0)  C/C++ code  scanf(&%d&,&x);//你可以这样,scanf的后一个参数必须是地址
x = x - 5;
wixiao2009 & &
& & (0)(0)  C/C++ code  #include&stdio.h&
scanf(&%d&,(x-5));
//这里错了~
if (x&15) printf(&%d&,x-5);
if (x&10) printf(&%d&,x);
if (x&5) printf(&%d\n&,x+5);
wiyh10000n & &
& & (0)(0)x-5
输入的得是个地址才行。。。
wiwiwi & &
& & (0)(0)scanf用错了……
wiz_scope & &
& & (0)(0)scanf()这个函数的的参数是个指针,所以不能用x-5;你可以另外申请一个y=x-5;函数给你改了。#include&stdio.h&main(){ scanf(&%d&,&x); x=x-5; if (x&15) printf(&%d\n&,x-5); if (x&10) printf(&%d\n&,x); if (x&5)
printf(&%d\n&,x+5); system(&pause&);/*暂停参看结果*/ }wiwj1120 & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&C语言题目2个,求高手帮忙解决,用VC++6.0编写,非常感谢!_百度知道
C语言题目2个,求高手帮忙解决,用VC++6.0编写,非常感谢!
*p2)。2 编写一个调用函数实现从长度为n的源字符串中从第m字符开始截取k(m+k&lt,并输出目标字符串1 自定义一个strcmy函数实现两个字符串比较;=n)个字符复制到另一个目标字符串中的C语言程序,函数原型为int strcmp(char
*p1。要求源字符串从键盘输入
提问者采纳
后者大; i&lt。\请输入要比较的两个字符串,i+1); &#47。&#92:\/i&比较函数int strcmy(char *p1;n&*(p2+i))
return 0;相等; for(i=0;前者大;2; else
printf(&quot,n;第%d个字符串;i++) {
if(*(p1+i)&1000,a[1]);
gets(a[i]);); } return 2; if(1==n)
printf(&quot。\ for(i=0;i++) {
printf(&n&); else if(0==n)
printf(&quot第一个#include &n&;n&quot:\/).h&),char *p2){ n& } n=strcmy(a[0];}void main(){ char a[2][max];输入 printf(&#define max 1000&#47
其他类似问题
为您推荐:
高手帮忙的相关知识
其他2条回答
这是要贴代码吗?虽然简单,但是没有动力。
1、第一题直接一个for循环遍历比较每一个字符就可以了2、第二题也差不多- -!自己多想想
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁用VC++6编译一个C程序,这个程序的主函数调用了自己定义的一个函数,但运行时并没有执行这个函数,怎么回_百度知道
用VC++6编译一个C程序,这个程序的主函数调用了自己定义的一个函数,但运行时并没有执行这个函数,怎么回
是我忘记写括号了!!已经找到原因了
提问者采纳
所以没有经过;3。进入了之前的某个return或者exit路径,所以发生中断,有可能是;2,需要看到代码之后才能清楚,程序返回:1。之前某个地方产生了异常。具体的,后续的代码段就不执行了。函数所在的路径并不满足麻烦您把相关部分的程序贴出来看看才能知道
提问者评价
来自团队:
其他类似问题
为您推荐:
主函数的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁来源:互联网 发表时间: 21:36:44 责任编辑:鲁晓倩字体:
为了帮助网友解决“c语言题目,请帮忙解答一下,非常感谢。”相关的问题,中国学网通过互联网对“c语言题目,请帮忙解答一下,非常感谢。”相关的解决方案进行了整理,用户详细问题包括:<,具体解决方案如下:解决方案1: 我马上要考二级了,试调了一下,还真是你运行的那种结果,我也迷糊了!帮你问问哈
这是两个人的回答&你们老师说的右结合我不知道是什么意思。这道题目跟c函数的压栈顺序有关,还有就是自加操作。printf("%d,,%d,%d\n",x--,x--,x--);第一条打印语句,无论压栈顺序为从右到左还是从左到右,结果都是10,10,10。因为x--是在一条c语句结束后才加的,注意是一条c语句,就是说虽然有三条x--操作,但都是在一条语句中。所以x的值是不变的。printf("%d,%d,%d,%d\n",a++,++a,a--,--a);显然,从你的结果看,编译器编译生成的代码是从右至左压栈的。--a后a=2a--不变a=2++a后a=3;a++不变a=3所以最后结果是3,3,2,2结果是跟你所使用的编译环境有关的,比如是在VS2010,还是VC6.0,又或者是Linux下的GCC。在不同的环境下编译运行结果是不一样的,考虑printf("%d,,%d,%d\n",x--,x--,x--);这一句,函数的参数的进栈顺序可能是从左往右也可以是从右往左(还是要根据编译器的不同来决定),同时x--也有好几种可能,是在整个printf结束后再全部--,还是分析完一次“x--”就把x-1,所以没有标准答案。在你运行的结果里就是在整个printf执行完后,再依次对x进行--,故输出全是10,但这行并没办法看出函数参数的进栈顺序。在printf("%d,%d,%d,%d\n",a++,++a,a--,--a);则能够很容易的看出其进栈顺序,输出结果中最后一个数是2,因些可以肯定是--a先进的栈,(--a即先执行a=a-1,再把a的值即2压栈),接下去的分析类似上一条语句。
希望对你有所帮助!
解决方案2: 你用的是VC++吧,在VC++中printf()不按那套来的。解决方案3: 你确定这是你们老师给的例子给你?你可以去抽你们老师两巴掌,用这样的例子来误人子弟。C的函数参数的压栈顺序一般是固定的,从右向左, 不过WINDOWS环境下可以通过指定pascal关键字来要求从左向右压栈。函数参数关于顺序方面的内容就这么多了。而关于C函数参数的求值顺序,C是没有定义的,取决于编译器。相同编译器在不同CPU上也可能不同。所以你这个根本就没法确定求值顺序。正确的写法是在函数调用前先行计算并保存到变量作为参数传递。
相关文章:
最新添加资讯
24小时热门资讯
Copyright &#169; 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号

我要回帖

更多关于 谭浩强的 c程序设计 的文章

 

随机推荐