相关疑难解决方法(0)

错误:操作符"++"的操作数必须是左值

在C++中,

i = ++++j;
Run Code Online (Sandbox Code Playgroud)

在代码中工作正常,但是当我使用时,

i = j++++;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Operand for operator "++" must be an lvalue.
Run Code Online (Sandbox Code Playgroud)

为什么我收到此错误?

c++

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

使用递归函数添加数字

我正在学习C,我想出了这个例子

     #include <stdio.h>

     int MyAdd(int);
     main ()
     {
          int i;
          int c = 0;
          c = MyAdd(5); 
          printf("%d\n", c);
     }

     int MyAdd(int a)
     {
          if(a > 0)
               return a + MyAdd(--a);
          else
               return 0;
     }
Run Code Online (Sandbox Code Playgroud)

我自己运行这个,我计算15.(5 + 4 + 3 + 2 + 1)但是当我运行它时,我得到10 ...为什么??? 在第一次,我们得到5+(再次执行func)等等.

c function

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

- 操作员的行为

什么之间的区别--xx-1?我有一个方法,计算我尝试100的前n个数字的总和,结果如下:

int sumaRec(int _suma){
    if (_suma > 0)
    {
        return _suma + sumaRec(--_suma);
    }
    else
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我把--_suma 结果是4950,当我把_suma -1结果是5050

有谁能解释为什么?请.

c++ operators

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

序列返回49但应返回36

以下代码旨在专门返回值36而不是它返回49但不能看到如何或为什么.任何帮助,将不胜感激.

#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>

#define MUL(a,b) a*b
#define ADD(a,b) a+b

static int Func1(void)
{
    static int n = 1;

    // Returns 4
    return n*++n;
}

int main()
{
    static int Incs = Func1();

    printf("%d\n", MUL(ADD(1, Incs), MUL(3, 4)));
}
Run Code Online (Sandbox Code Playgroud)

c++ math console visual-c++

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

为什么表达式*(b ++)不首先评估b ++?

我试图理解括号如何影响表达式中的优先级:

int arr[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 
auto b = arr;
std::cout << *(++b) << std::endl;

// output : 1
Run Code Online (Sandbox Code Playgroud)

在这段代码中,我得到了预期的输出,但如果我将其更改为:

std::cout << *(b++) << std::endl;
// output 0 
Run Code Online (Sandbox Code Playgroud)

我得到0了输出.由于括号我b++将首先进行评估,然后进行解引用.看来我错了,那么我完全去除括号和测试与*++b*b++并获得意味着括号并不影响这种表达的优先级相同results.Does?为什么这两个表达式的结果是等价的:

*(b + 1) 
*(++b) 
Run Code Online (Sandbox Code Playgroud)

但事实并非如此*(b++)

c++ pointers operators operator-precedence

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

无限循环的原因

signed char ch=5;
while(ch = ch--)
    printf("%d",ch);
Run Code Online (Sandbox Code Playgroud)

我看了这个.清楚地说明了声明和声明(;)的结尾是序列点.

所以我不明白为什么上面的那个运行无限时间并打印相同的值[5].

c sequence-points

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

应用于单词数组的随机数范围

我是C++的新手.我基本上是自学.我遇到了一个我正在练习的Hangman游戏项目.我的问题是随机字生成.

我知道例如,int n=rand()% 10意味着生成0到10范围内的随机数.

现在在游戏中有一个包含10个单词的10个单词的数组.我感到困惑的是,如果从0到10的数字是随机生成的,那么这将是从11个随机数中选择的.但是,该数组只有10个元素(0-9).

当随机发生器选择10时会发生什么?元素10不存在于数组中,对吗?
那么这段代码应该int n=rand()% 9不是吗?

此外,在游戏中选择所有单词之前,是否可以重复相同的单词?那显然不是理想的.如果可以的话,我该如何防止这种情况?

c++

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

这个语句如何工作`int k =(a ++,++ a);`在c或c ++中

我无法理解下面代码的输出是如何"-3"的?

#include <stdio.h>
void main()
{
    int a = -5;
    int k = (a++, ++a);
    printf("%d\n", k);
}
Run Code Online (Sandbox Code Playgroud)

int k = (a++, ++a);在c或c ++中这个陈述背后的概念是什么 ?

c c++ initialization comma comma-operator

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

后增量用于while循环中的乘法

奇数数组以这种方式分组:first数字是第一组,下一个2数字形成第二组,下一个3数字形成第三组,依此类推.

团体:

  1. 1
  2. 3 5
  3. 7 9 11
  4. 13 15 17 19
  5. 21 23 25 27 29

现在我想查找给定数字是否是组中数字的总和并找到该组的订单号.

我写了下一个代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int k;
    scanf("%d", &k);

    int x = 1;
    while( x * x * x < k )
        x++;

    if( x * x * x != k )
        x = 0;

    printf("%d", x);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试将while循环更改为下一个循环:

while( x * x * x++ < k )
    ; …
Run Code Online (Sandbox Code Playgroud)

c syntax post-increment

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

这是C中未定义的行为吗?

我在gcc上运行我的C代码来理解前/后增量运算符.然而,我看到的结果并不是我所期望的.就像第6行一样,因为我是5,它应该是

8 7 6 5 5
Run Code Online (Sandbox Code Playgroud)

但它是 8 7 6 5 8

然后显示最后一行14 14 14 14.有人可以解释一下这种行为.我曾预料到 14 14 13 12

这个编译器是否依赖?是否序列点上的printf函数的beahviour未定义?

#include <stdio.h>

int main()
{
        i = 5;
        printf("%d %d %d %d %d \n", i, i++, i++, i++, i);
        printf("%d \n", ++i);
        printf("%d \n", ++i);
        printf("%d \n", ++i);
        printf("%d %d %d %d \n", i, ++i, ++i, ++i);

}
Run Code Online (Sandbox Code Playgroud)

c pre-increment post-increment

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