搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求解这个程序错误的原因?
标题:
求解这个程序错误的原因?
只看楼主
苍天的蓝悠
等 级:
新手上路
帖 子:11
专家分:4
注 册:2015-7-23
结帖率:
100%
楼主
已结贴
√
问题点数:20 回复次数:5
求解这个程序错误的原因?
下列给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序相反的顺序组成一个新数,作为函数值返回。
注意:不得删行增行,不得改变程序结构!
而且我也无法理解if(*p)p++和if(*q)q++这个的用处何在?
望各位能帮我解解答,非常感谢。
搜索更多相关主题的帖子:
而且
2015-07-24 17:12
jiangiew
等 级:
论坛游民
帖 子:8
专家分:65
注 册:2015-7-11
第
2
楼
得分:20
字符串在存储的时候是一个个的字符,指针p和q指向存储字符串的首元素地址,*p和*q指向里面的内容。if(*p)是指:*p如果非空,则p++,也就是指针p的所指向的地址向高位偏移1个字节,指向下一个字符。
2015-07-24 17:34
苍天的蓝悠
等 级:
新手上路
帖 子:11
专家分:4
注 册:2015-7-23
第
3
楼
得分:0
回复 2楼 jiangiew
恩,这个我理解了。
但是从上面if,else选择下来,只会是一个*p,或者是一个*q那么只会有一个是向后推一位,另一个是不动的?但是按照这样,这道例题的答案我推不出来。
ex:若主函数中a字符串为“aBCDeFgH”,b字符串为“ABcd”,我推算出c字符串是“aBCDeFgH"?
请帮我看看我是哪里理解错了吗?谢谢。
2015-07-25 13:45
jiangiew
等 级:
论坛游民
帖 子:8
专家分:65
注 册:2015-7-11
第
4
楼
得分:0
回复 3楼 苍天的蓝悠
代码的形式是这样:
while (*p != *q) {
if (*p < *q) {
c[k] = *q;
} else{
c[k] = *p;
}
if (*p) {
p++;
}
if (*q) {
q++;
}
k++;
}
三个if语句是都要进行判断的
2015-07-25 16:28
jiangiew
等 级:
论坛游民
帖 子:8
专家分:65
注 册:2015-7-11
第
5
楼
得分:0
回复 3楼 苍天的蓝悠
我的理解是:这个函数的功能是对两个字符串从第一位字符开始逐个进行比较,将较大的字符提取出来,组成一个新的字符串。如果a字符串为“aBCDeFgH”,b字符串为“ABcd”,那么结果就是“aBcdegH”。
2015-07-25 16:36
苍天的蓝悠
等 级:
新手上路
帖 子:11
专家分:4
注 册:2015-7-23
第
6
楼
得分:0
回复 5楼 jiangiew
嗯嗯,我了解了,谢谢你的解答!!
2015-07-25 21:59
6
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-455740-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.648993 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved