检查单调序列-C编程

加里克·杰伊(Garrick Jay)

我在检查单调序列时遇到问题。问题是输入序列,如果单调,则打印“是”,如果不是单调,则打印“否”。

这是我的代码:

#include <stdio.h>

int main()
{
    //Inputting the sequence
    int n;
    scanf("%d", &n);
    int a[n];
    for (int i = 1; i <= n; i++)
    {
        scanf("%d ", &a[i]);
    }

    
    //Checking monotonic sequence
    for (int i = 1; i <= n; i++)
    {
        if ((a[i] > a[i-1]) && (a[i] > a[i+1]))
            {
                printf("NO");
                return;
            }
        else if ((a[i] < a[i-1]) && (a[i] < a[i+1]))
            {
                printf("NO");
                return;
            }
        
    }
    printf("YES");

    return 0;
}

我已经失败了2个测试用例,它们的序列分别为[1、2、3]和[10、6、4、2、1,-100。并通过了[1、2、3、3、2、1]的一个测试用例。谁能在我的代码中指出问题?我真的很感激。谢谢。

chux-恢复莫妮卡

删除尾随" "输入数字后,scanf()返回之前,它会强制进行其他输入(或文件结尾)

// scanf("%d ", &a[i]);
scanf("%d", &a[i]);

除了在2个地方出现索引问题外,代码还需要查找整体单调的行为,而不仅仅是局部单调的行为。

bool up = true;
bool down = true;

// for (int i = 1; i <= n; i++)
for (int i = 1; i < n; i++) {
  if (a[i] > a[i-1]) down = false;
  if (a[i] < a[i-1]) up = false;
}

printf((up || down) ? "YES" : "NO");

短路循环的附加代码。

// for (int i = 1; i < n; i++) {
for (int i = 1; i < n && (up || down); i++) {

此外,在联系情况下缺乏编码目标的明确性。可能需要

  if (a[i] >= a[i-1]) down = false;
  if (a[i] <= a[i-1]) up = false;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C 编程 - 检查素数

在 C++ 中检查单调时钟的滴答是否等待免费?

检查用户输入长度(C编程)

如何检查一个序列是严格单调的,还是有一个转折点是双方都是严格单调的?

查找给定序列是单调的还是严格单调的

以编程方式检查 Windows 是否已使用 C++ 激活

c ++ 11元编程:检查方法是否存在

Haskell中的单调序列类型

检查数组的元素是否单调

C单调时钟

在单调序列中建立索引的问题

C ++元编程:基于类型/值输入生成字节序列?

C 编程:整数序列之和直到零并打印两个相乘整数之和

编程手动 JSON 反序列化为 C# 对象

如何在Linux中使用C编程检查php和pear版本?

C编程:如何检查用户是否仅在以下表达式中输入了数值?

以编程方式检查Windows服务是否正在运行C#

在客户端的C编程中使用UDP检查服务器何时联机

C ++ Qt-检查Steam游戏是否正在运行或是否以编程方式运行

如何在 c# winform 中以编程方式检查复选框?

检查行中单调递增的值

Python-如何检查列表的单调性

如何检查系统是否支持“单调时钟”?

与C编程相比的Cuda编程

如何以编程方式检查是否使用C#启用或禁用了Windows桌面设置“自动排列图标”?

如何以编程方式检查 SQL 数据库/服务器是否支持 C# 中的压缩?

在C编程中检查字符串是否全为带正则表达式的字母数字

使用C#如何以编程方式检查报表服务器上是否存在文件夹

以编程方式检查节电模式