你能解释一下这些程序在做什么吗?

时间:2013-11-13 17:26:03

标签: c++

所以我必须为此做跟踪表,但我不了解代码中的所有内容,例如a == b; Ç - = - d; B + =一%10

  int a=3,b=4, c=5,d=6;
if(a==b)c++;else c--;
while(d>2){
    c-=--d; b-=a;
}
    int a=3,b=0, c=7,d=5;
if(a=b)d++;else c--;
while(d>2){
    c+=a;a+=--d;
}

    int a=3,b=11, c=15,d=5;
if(a>b)d--;else c--;
for(;d>3;c/=a){
    b=--d;
}

    int a=31,b=14, c=95,d=56;
if(a<b)d++;else c--;
while(d>53){
    b+=a%10;d--; a/=10;
}

3 个答案:

答案 0 :(得分:1)

c -= --d;

平均

c = c - (--d);

同样如此
b += a%10

意味着

b = b + (a%10)

您可以使用*,/和%运算符

执行相同的操作

- d表示在执行指令之前d减小,++ d意味着d将在指令执行之前增加

if(a==b)c++;else c--;

与更易读的

相同
if (a==b)
{
    c = c + 1;
}
else
{
    c = c - 1;
}

答案 1 :(得分:1)

int a=3,b=4, c=5,d=6;
if(a==b) c++;
else c--;
while(d>2){
    c-=--d; b-=a;
}

如果a和b相同,则==运算符表示比较。在这种情况下,a和b是不同的,因此它转到else并将c变量递减为1。

- c之后意味着在执行指令之前减小了值。

所以,这意味着c将变为4。

虽然d > 2,但意味着它会循环d > 2

c -= --d; b-=a;

这意味着:

c = c - --d

b = b - a

因此,这意味着每次循环执行时d的值将减少1,并且将保持循环直到它> 2。

int a=3,b=0, c=7,d=5;
if(a=b)d++;
else c--;
while(d>2){
    c+=a;a+=--d;
}

=运算符意味着分配一个值,因此当它执行a=b时,它会将b的值分配给a但是因为它是0 },这意味着false它将转到else并将c的值减少1。

所以c将变为6。

while循环与第一个类似。

int a=3,b=11, c=15,d=5;
if(a>b)d--;else c--;
for(;d>3;c/=a){
    b=--d;
}

这个是非常简单的if语句。它检查a是否大于b。如果是这样,它执行d--,否则执行c - 。

对于for循环,它一直持续到d > 3并且每次都执行c /= a

c /= a也可以写为c = c / a

int a=31,b=14, c=95,d=56;
if(a<b)d++;else c--;
while(d>53){
    b+=a%10;d--; a/=10;
}

最后一个if语句也很简单,类似于上面的语句。

while循环将执行到d > 53

b+=a%10;d--; a/=10;内的命令也可以写成:

b = b + a % 10

d--

a = a / 10

答案 2 :(得分:0)

a==b

这是一个重要的布尔条件,它检查a是否等于b,如果是则返回true,否则返回false。这可以更改(已转换)为值{1或0的int

c-=--d;

我不喜欢编写这样的代码。

However c -= k statement is equivalent to c = c-k
and --d; is same as decrement d by 1.

代码在一个语句中完成这两件事。但秩序很重要。由于 - 来自d之前,首先评估此减量,然后考虑 - =运算符。

同样适用于+ =

我建议查找一个很好的C ++学习资源,例如www.cplusplus.com或www.learncpp.com