相关疑难解决方法(0)

同时最小和最大

我试图实现一种算法来搜索给定数组中的最小和最大元素,并使用Cormen的算法导论中的想法.我的代码编译并开始工作,输出生成的随机数组,然后在很长一段时间内什么都不做.为什么会这样?

代码是这样的:

// fast min and max --cormen exercise 1.cpp: entry point
//implemented from a verbal description in cormen's book, p 243

#include "stdafx.h"
#include <vector>
#include <ctime>
#include <cstdlib>
#include <iostream>

struct min_and_max
{
    int min, max;
};


min_and_max find_min_and_max(std::vector<int>& A)
{
    int n = A.size();
    int min, max;
    if (n%2 == 1)
        min = max = A[0];
    if (n%2 == 0)
        if (A[0] < A[1])
        {
            min = A[0];
            max = A[1];
        }
        else
        {
            min …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm max minimum

2
推荐指数
1
解决办法
1629
查看次数

基本整数增量,带有意外结果

图像是来自Swift游乐场的屏幕截图 - >左侧的代码,右侧的日志(如果您可以调用它).

我想我预计会发生的是第8行会导致1,因为,你知道,0 + 1 = 1

任何人都可以解释这里发生了什么?

在此输入图像描述

现在用println

在此输入图像描述

在你说出任何事情之前,我知道半冒号现在没用了,这是习惯,因为我今天决定学习来自Obj-C的Swift.

ios swift swift-playground

2
推荐指数
1
解决办法
69
查看次数

用于与数组进行比较并根据值进行更新的代码永远不会返回更新

我在javascript中有一个代码块,该代码块从API(此数据的真实来源)中获取一系列项目,并且当该数组中每个对象的更新日期都在更新时,应该更新dynamo数据库中的数据不符合我所拥有的 一切对我来说似乎都是正确的,但我总是在回信,即使我已经确认存在更新,也不需要更新任何内容。不太确定我在做什么错。

let count = 0;

    for (let appToCompare of arrayOfFormattedApps) {

        let hasMatch = false;

        for (let index = 1; index < currentCachedListOfApps.length; ++index) {
            var cachedApp = currentCachedListOfApps[index];

            if (cachedApp.ApplicationId === appToCompare.ApplicationId) {
                if (cachedApp.LastUpdateDateTime !== appToCompare.LastUpdateDateTime) {
                    arrayOfAppsWithUpdates.push(appToCompare);
                    hasMatch = true;
                    console.log(cachedApp.AppName + ' is being updated')
                    ++count;
                    break;
                }
            }
        }

        if (hasMatch) {
            arrayOfAppsWithUpdates.push(appToCompare);
        }
    }
Run Code Online (Sandbox Code Playgroud)

javascript node.js

2
推荐指数
1
解决办法
306
查看次数

C 中包含递增的逻辑表达式的求值

我刚刚写了一个小程序来帮助我熟悉 C 中的逻辑表达式,我期望结果是:

1 
1 1 1
Run Code Online (Sandbox Code Playgroud)
#include <stdio.h>

int main(void) 

{

    int I = 1, J = 1, K = 1;
    printf("%d\n", ++I || ++J && ++K);
    printf("%d %d %d", I, J ,K);

    return 0;
}

Run Code Online (Sandbox Code Playgroud)

相反,我得到了:

1 
2 1 1
Run Code Online (Sandbox Code Playgroud)

的价值 I增加了 1,我不知道为什么。

据我所知,我的程序中I没有分配(=)任何新值,那么它的值是如何改变的?

c evaluation increment logical-operators

2
推荐指数
1
解决办法
102
查看次数

i ++返回i而不是i ++

可能重复:
pre减少与post减少有
什么区别++ i和i ++有什么区别?

我刚刚意识到这一点

int i=0;
System.out.println(i++);
Run Code Online (Sandbox Code Playgroud)

打印0而不是1.我以为增加了然后打印了.似乎相反的情况发生了.

为什么?

java coding-style

1
推荐指数
1
解决办法
1694
查看次数

为什么以下程序会进行无限循环?

当我执行这个belo程序时,它正在5无意中打印.为什么?是因为减量没有发生还是在减量发生之前函数调用正在发生?

我尝试了替代方式制作fun(--n),它给了我正确的答案.但为什么它不起作用fun(n--)

void fun(int n)
{
    if(!n)
    {
        cout << n << " " << endl;
    }
    else
    {
        cout << n << " "<<endl;
        fun(n--);
    }
}

int main()
{
    int n = 5;
    fun(n);
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ recursion decrement

1
推荐指数
1
解决办法
235
查看次数

计算++和++计数,何时使用哪个?

所以我遇到了这个小小的增量方法

因为高中和大学我习惯这种方法

char[] NewArray = new char[5] //I forgot how to declare an array

string temp;

console.writeline("Enter 5 letters)

for (i=0; i<5;i++)
{
   NewArray[i] = console.readline()
}
Run Code Online (Sandbox Code Playgroud)

现在基于这段代码

我声明了一个带有5个"空格"的char数组,然后我向控制台输出一条消息,要求用户输入5个值

所以i = 0,readline例如c

因此,在console.readline statment之前,i = 0,然后它继续通过for循环,然后返回循环的开头,再次增加i = 1 BEFORE再次执行console.readline再次

这与"++ i"有什么不同,"++ i"在for循环中会做什么?

c# increment

1
推荐指数
2
解决办法
3万
查看次数

评估顺序>>和[++]

我对C++中的操作的优先级有疑问.我在http://en.cppreference.com/w/cpp/language/operator_precedence中搜索优先级,我读到的这个问题或多或少与C中的数组增量差异相同

我没有得到任何明确的结论.如果我做

var >> array[n++];
Run Code Online (Sandbox Code Playgroud)

运算符>>用于读取字符的流.¿它存放在哪里我读了?在n或n + 1?

谢谢

c++ operator-precedence

0
推荐指数
1
解决办法
87
查看次数

不理解陈述的界限

这是代码

int main()
{
    int i=-3, j=2, k=0, m;
     m = ++i||++j&&++k;
     printf("%d, %d, %d, %d\n", i, j, k, m);
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

并输出:-2,2,0,1

但我不明白 m = ++i||++j&&++k;它是如何被执行的.有人请解释一下.谢谢!

c

0
推荐指数
1
解决办法
67
查看次数

C 中被误解的运算符优先级

我正在做一些关于C语言中操作执行顺序的练习,我遇到了一个我不太理解的情况。

int d = 1;
int e = d--/10;     // the result of e will be 0;
Run Code Online (Sandbox Code Playgroud)

在计算“e”的值之前,我们先递减“d”,然后再进行除法。

另一方面,在“f”中,我们在递减“d”之前进行了除法!

int d = 1;
int f = 10/d--;     // the result of f will be: 10
Run Code Online (Sandbox Code Playgroud)

我的问题是:既然知道在这两种情况下“d”的减量都是后减量,为什么使用的“d”值存在差异?

c arithmetic-expressions operation operator-precedence

0
推荐指数
1
解决办法
90
查看次数