胡涂涂zh 2022-05-12 12:17 采纳率: 50%
浏览 101
已结题

if(false&&false)为什么会进入判断c#

输入一组从小到大排序的数字,从中插入一个数字不打破排序。我输入的1 2 3 5,插入的是4
,经过前面代码的运行此时intarry[1,2,3,5,0]

if (insertnum >= intarry[index] && insertnum <= intarry[index + 1])
{
/将数字后移/
do
{
intarry[index2] = intarry[index1];
index2--;//index2为数组最后一个元素的位置
index1--;//index1为数组倒数第二个元素的位置
} while (index < index1);
intarry[index + 1] = insertnum;
//break;
}

此时是index=3,insertnum=4,进入了判断。

下面是全部代码
using System;
namespace 1
{
class Program
{
static void Main(string[]args)
{
string str = Console.ReadLine();
string[] strarry = str.Split(" ");
int[] intarry = new int[strarry.Length + 1];
int index = 0;
int index1 = intarry.Length - 2;
int index2 = intarry.Length - 1;
for (int i = 0; i < strarry.Length; i++)
{
intarry[i] = Convert.ToInt32(strarry[i]);
}
int insertnum = Convert.ToInt32(Console.ReadLine());
for (; index < strarry.Length; index++)
{
if (insertnum >= intarry[index] && insertnum <= intarry[index + 1])
{
/*将数字后移*/
do
{
intarry[index2] = intarry[index1];
index2--;//index2为数组最后一个元素的位置
index1--;//index1为数组倒数第二个元素的位置
} while (index < index1);
intarry[index + 1] = insertnum;
//break;
}
else if (insertnum > intarry[intarry.Length - 2])
{
intarry[intarry.Length - 1] = insertnum;
break;
}
else
{

            }
        }
        foreach (int temp in intarry)
        {
            Console.Write(temp);
        }
    }
}

}

  • 写回答

2条回答 默认 最新

  • 於黾 2022-05-12 13:04
    关注

    你手里有IDE,不会断点跟吗
    你自己写的代码里有数字后移
    那么当index=2时,
    4>3&&4<5,5会被移动到0的位置,变成1,2,3,0,5
    当index=3时,4>0&&4<5
    这有什么问题?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月20日
  • 已采纳回答 5月12日
  • 修改了问题 5月12日
  • 创建了问题 5月12日

悬赏问题

  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?