gpt4 book ai didi

c - 得到了正确的答案,但不知道如何或为什么。需要解释

转载 作者:行者123 更新时间:2023-11-30 21:20:32 24 4
gpt4 key购买 nike

我最近做了一次考试,有一道奖金题,我是唯一答对的人。我和我的同学一样好奇我是如何做对的。

问题是:使用此数组:int a[5] = {5, 1, 15, 20, 25};

使用这些变量:int i, j, m;

使用此基本代码:

i = /*Enter Code*/;
j = /*Enter Code*/;
m = /*Enter Code*/;
printf("%d, %d, %d", i, j, m);

得到这个答案:3, 2, 15

有很多条件,但主要是我们只允许使用数组,并且每个变量一个“1”和一个“++”等于。

我通过反复试验得到了正确的答案,但我不知道我是如何得到它的,以及它是如何正确的。这是我的代码:

int main()
{
int a[5] = {5, 1, 15, 20, 25};
int i, j, m;
i = ++a[1];
j = a[1]++;
m = a[i++];
printf("%d, %d, %d", i, j, m);
_getch();
return 0;
}

我纯粹好奇我是如何得到正确答案的。任何解释都会很棒。

提前致谢。

最佳答案

所以,看看这三个陈述:

i = ++a[1];

这会将 a[1] 更改为 2,并将该值分配给 i

j = a[1]++;

这会将 j 设置为 2,并将 a[1] 更改为 3

m = a[i++];

这会将 m 设置为 15,并将 i 更改为 3

因此打印的最终值是所需的值,3, 2, 15

如果您在调试器中运行此代码,您可以观察所有变量并逐条语句地查看它的发生情况。

关于c - 得到了正确的答案,但不知道如何或为什么。需要解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37319720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com