| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1153 人关注过本帖
标题:考考你,问题出在哪里
只看楼主 加入收藏
hjxlj
Rank: 10Rank: 10Rank: 10
来 自:江西
等 级:贵宾
威 望:14
帖 子:292
专家分:1519
注 册:2013-6-25
收藏
 问题点数:0 回复次数:16 
考考你,问题出在哪里
程序代码:
int main(void)
{
char f[81];
int a=0;
char ch;

puts("input the array");
gets(f);
puts("put a char");
ch=getchar();

while(f[a]!='\0')
{
if(f[a]==ch) 
printf("the first location is %d\n",a);
a++;
}
printf("there is no %s in the array\n",ch);
return 0;
} 


上面这段代码运行时,会发生内存访问违规的错误,请你把错误找出来并改正(当然还存在一些逻辑上的错误,但主要以解决运行时错误为主)。
搜索更多相关主题的帖子: color 
2014-09-29 21:21
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
0分还要考别人

总有那身价贱的人给作业贴回复完整的代码
2014-09-29 21:34
wssy213
Rank: 12Rank: 12Rank: 12
来 自:湖南
等 级:贵宾
威 望:10
帖 子:967
专家分:3703
注 册:2014-6-6
收藏
得分:0 
表示零分无动力

坚持----------------------------------唯一的道路
shit ! ! !
2014-09-29 22:14
icanbestrong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:100
专家分:138
注 册:2013-3-13
收藏
得分:0 
我看到了两处,一处是假设找到ch时没有跳出循环;还有就是最后一个输出%s应该改成%c.请问何为内存违规操作?
2014-09-29 22:53
icanbestrong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:100
专家分:138
注 册:2013-3-13
收藏
得分:0 
程序运行出结果了给崩了,请大神指点一下迷津
2014-09-29 23:10
icanbestrong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:100
专家分:138
注 册:2013-3-13
收藏
得分:0 
我知道了,因为%s以‘\0’结束
而ch只有一个字符,没有‘\0'对吧,等于要找一个'\0',这个不知何年何月才能找到,是吧,所以叫非法操作内存对吧
2014-09-29 23:15
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 4 楼 icanbestrong
因为是%s,所以它把后面的参数ch当作指针来处理的。这段代码问题还很多,实在没有看的必要。

重剑无锋,大巧不工
2014-09-29 23:23
hjxlj
Rank: 10Rank: 10Rank: 10
来 自:江西
等 级:贵宾
威 望:14
帖 子:292
专家分:1519
注 册:2013-6-25
收藏
得分:0 
回复 2 楼 embed_xuel
纯娱乐,,兼带活跃一下论坛气氛,不要把分数看的那么重,好不?

本人QQ:775420425
2014-09-30 00:31
hjxlj
Rank: 10Rank: 10Rank: 10
来 自:江西
等 级:贵宾
威 望:14
帖 子:292
专家分:1519
注 册:2013-6-25
收藏
得分:0 
回复 4 楼 icanbestrong
阁下所答完全正确,加10分!

本人QQ:775420425
2014-09-30 00:33
hjxlj
Rank: 10Rank: 10Rank: 10
来 自:江西
等 级:贵宾
威 望:14
帖 子:292
专家分:1519
注 册:2013-6-25
收藏
得分:0 
4楼正解,就是%s和%c的关系

本人QQ:775420425
2014-09-30 00:34
快速回复:考考你,问题出在哪里
数据加载中...
 
   



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

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