标题:循环和分支问题?
只看楼主
Jhunter
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-12-26
结帖率:0
已结贴  问题点数:20 回复次数:4 
循环和分支问题?

题目:编写程序从一个大数组中查找另一个小数组,把查找到的所有起点打印在屏幕上(要求使用指针完成):?
答案:
#include <stdio.h>
int main() {
        int arr[] = {1, 2, 3, 4, 5, 6, 7, 3, 4, 6,7, 3, 4, 5};
        int arr1[] = {3, 4, 5};
        int *p_cur = NULL, *p_arr1 = NULL;
        for (p_cur = arr;p_cur <= arr + 11;p_cur++) {
        for (p_arr1 = arr1;p_arr1 <= arr1 + 2;p_arr1++) {
                        if (*(p_arr1 - arr1 + p_cur) != *p_arr1) {
                                break;
                        }
                }
                if (!(p_arr1 <= arr1 + 2)) {
                        printf("位置%d是一个查找结果\n", p_cur - arr);
                }
        }
        return 0;
}
问题是if(!(p_arr1<=arr1+2))这一步不懂,希望有人可以帮助我
搜索更多相关主题的帖子: 编写程序 include 起点 
2014-01-25 16:38
baiqtd123456
Rank: 2
等 级:论坛游民
帖 子:8
专家分:78
注 册:2013-11-22
得分:5 
(!(p_arr1 <= arr1 + 2))说明for (p_arr1 = arr1;p_arr1 <= arr1 + 2;p_arr1++) 这个循环是由于p_arr1 <= arr1 + 2不成立才退出循环的,而非break出来的,那也就是说三个数字的匹配都是正确的,也就按要求找到小数组了。
2014-01-26 09:48
西安郑鑫
Rank: 7Rank: 7Rank: 7
来 自:陕西
等 级:黑侠
帖 子:163
专家分:624
注 册:2013-9-26
得分:5 
围观

Hello World!------鑫花璐放
2014-01-26 15:19
loveClangage
Rank: 8Rank: 8
来 自:广东云浮
等 级:蝙蝠侠
帖 子:326
专家分:891
注 册:2013-8-23
得分:5 
if(!(p_arr1<=arr1+2))…如果表达式(p_arr1<=arr1+2)真…则if不成立…相反则成立

编写的程序,不能改变世界,却可以改变自己...
2014-01-27 00:12
Copain
Rank: 2
等 级:论坛游民
帖 子:10
专家分:69
注 册:2014-1-31
得分:5 
注意(!(p_arr1 <= arr1 + 2))与for (p_arr1 = arr1;p_arr1 <= arr1 + 2;p_arr1++) 这个循环中条件表达式的联系,说明for (p_arr1 = arr1;p_arr1 <= arr1 + 2;p_arr1++) 这个循环是因为条件表达式的不成立而结束的,即已找到匹配的小数组,需要打印出对应的起点。
2014-02-01 21:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-426850-1-1.html




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

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