gpt4 book ai didi

c - 什么数字符合这个 C 模式?

转载 作者:太空宇宙 更新时间:2023-11-04 06:16:43 25 4
gpt4 key购买 nike

所以我有这个 C 函数,它读取 6 个数字,它们必须符合特定模式才能成功到达函数的末尾。

void phase() {
int numbers[6];
read_six_numbers(numbers);
if(numbers[0] < 0) explode();
for(int i=1; i!=6; ++i) {
int a = i + numbers[i-1];
if(numbers[i]!=a) explode();
}
}

让我失望的是循环中的++i。我查看了 ++ii++ 的区别,它似乎在遍历数字时并不重要。然而,如果不调用 explode(),我似乎找不到 6 个数字可以到达此函数的末尾。

简而言之,++ii++ 在这种情况下重要吗?就像我说的,研究差异似乎不应该。虽然当我在纸上解决问题时我无法成功到达循环末尾,所以我一定做错了什么?或者可能只是想多了这个问题?

最佳答案

在这种情况下,前置增量与后增量无关。

这是一个解决方案(0、1、3、6、10、15):

#include <stdio.h>

void explode(int n) {
printf("Exploded at %d\n", n);
}

void phase() {
int numbers[6] = {0, 1, 3, 6, 10, 15};

if (numbers[0] < 0) explode(0);

for (int i = 1; i != 6; ++i) {
int a = i + numbers[i-1];
if (numbers[i] != a) explode(i);
}
}

int main(int argc, char *argv[]) {
phase();
}

关于c - 什么数字符合这个 C 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44012806/

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