章节
问答
课签
笔记
评论
占位
占位

编程练习

查找算法的另一种应用,是检查一组数据中是否包含符合条件的元素,也就是要给出“有”或“没有”的结论。

要解决这种问题,首先要声明一个“开关变量”,用来记录查找的状态;通常,我们把开关变量初始化为 false ,表示没有找到,循环中如果发现了符合条件的元素,则给变量赋值为 true ,并结束查找。循环结束后,就可以判断开关变量: true 表示“有”, false 表示“没有”。

任务

程序中有一个 int 型数组,包含了若干整数。请检查其中是否有“7的整倍数”。运行结果如下:

?不会了怎么办

            //查找其中有没有7的整倍数
            bool has7 = false;//记录有没有7的整倍数,假设没有
            foreach (int x in num)//遍历每一个数字
            {
                if (x % 7 == 0)//设置筛选条件,查找7的整倍数
                {
                    has7 = true;//找到后,记录为true,即“有7的整倍数”
                    break;//跳出foreach,结束查找
                }
            }
            //判断结果并输出
            if (has7)
                Console.WriteLine("有7的整倍数");
            else
                Console.WriteLine("没有7的整倍数");

||
1
2
using System;
using System
    .Collection
    s.Generic;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / 幕布斯8093319
不能等于数组长度,超出长度报错

最新回答 / weixin_慕数据8156081
你这里的输出的写法有问题,应该是Console.Write

最赞回答 / WCCCC
自我debug已经完成:15行for循环中int=0是错误的,应为int i=0。接下来会因为我使用了break而报错,删除break;即可解决问题。

最新回答 / weixin_精慕门0106847
for循环的分号是中文的

最新回答 / qq_慕的地1446569
把两行打印写在for循环外面就行

最新回答 / qq_慕丝4581239
using System;using System.Collections.Generic;using System.Text;namespace Test{    class Program    {        static void Main(string[] args)        {            //声明整型数组,保存一组整数            int[] num = new int[] { 3,34,43,2,11,19,30,55,20};            forea...

最赞回答 / 幕布斯9103858
static void Main(string[] args)        {            //声明整型数组,保存一组整数            int[] num = new int[] { 3,34,43,2,11,19,30,55,20};            bool has7=false;//请完善代码,判断数组中有没有7的整倍数            for(int i=0; i<num.Length;i++)            {                if(...

最新回答 / 所罗门87
Console.Write("有");  和   Console.Write("没有7的整倍数");   这两个后面的分号应该是英文状态的分号,你写的中文的,VS直接就报错了,

已采纳回答 / qq_慕仙8212105
If括号后面不用加分号

最新回答 / 慕标9143799
感觉你是多了一个}吧。删一个试试

最赞回答 / 蜗牛大叔
换 foreach,要把break调到if外面,即:foreach(int i in num)            {                if (num[i] % 7 == 0)                {                    hasit = true;                                    }                 break;              }

已采纳回答 / 慕尼黑5582645
for里面的循环条件不要用<=数组长度,因为如果等于的话就超出数组范围。

最新回答 / qq_慕数据5045475
我知道了,true

最新回答 / 没有伞的前行者
有时候你在网页里面的编程不规范她就识别不了,就默认你错误了,我的代码也是,网页里面报错,复制到vs里面去就没有问题,也不报错,照常输出。
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言