gpt4 book ai didi

c - 在指针数组中放置一个区间

转载 作者:行者123 更新时间:2023-12-05 01:26:57 25 4
gpt4 key购买 nike

我试着给我的教授发邮件寻求帮助,但他的帮助不大。

给定一个从 x 开始的大小为 50 的区间 [x,x+50](包括 x 和 x+50),找到放置该区间的位置,使其具有数组中指向的最大元素数它。仅考虑以集合中的数字开始的间隔。我真的坚持这个。

他给了我们随机指针数组,所以这就是他的代码。我已经整理好了。

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

int main(void) {
int i, n, temp, j, k, x;
int *info[100];

for (i = 0; i < 100; i++) {
info[i] = (int*)malloc(sizeof(int));
*info[i] = rand() % 1000;
}
for (k = 0; k < 100; k++) {
for (j = k; j < 100; j++) {
if (*info[k] > *info[j]) {
temp = *info[j];
*info[j] = *info[k];
*info[k] = temp;
}
}
}

for (k = 0; k < 100; k++) {
if (*info[k/50] = 1)
printf("%d\n %d\n", *info[k], *info[k] + 50);
break;
}

return 0;
}

最佳答案

这是一道诚实的作业题。
StackOverflow 推荐帮助但不解决
(稍后发布我刚刚测试过的解决方案代码)。

所以这里有一些提示:

  • 总结:我觉得这里的类(class)应该教授区分数组和值范围,以及索引和这些索引中成员的值。
  • 涉及多个“范围/数组”
  • 100 个随机值的数组
  • 随机值在 [0,1000) 范围内
  • [x,x+50] 的可重定位范围几乎总是值范围的子范围
    (可能超过 1000)
  • 随机数组成员的值可以在范围内,这是一个 bool 属性
  • 随机数组的索引是否在范围内是无关紧要的
  • 范围的每个可能位置都从随机数组成员的值开始
  • 因此您有 100 个可能的位置要检查
  • 对它们中的每一个,计算值的数量(范围内的随机数组成员)
  • (对不起,如果这听起来像“哈哈”,但是)我认为排序只会分散你对解决方案的注意力;
    至少如果您在开始时跳过优化方案

"VRA":=range of possibe values in random array  
"." :=position of the value of one member of random array
(only a few examples, instead of 100)
"r" :=possible range,
starting at the value of one member in random array,
ending 50 later


VRA [ . .. . . . ... . . .. . )
0 1k
2 r [ ]
2 r [ ]
1 r [ ]
3 r [ ]
3 r [ ]
4 r [ ]
3 r [ ]
2 r [ ]
1 r [ ]
2 r [ ]
3 r [ ]
2 r [ ]
1 r [ ]
1 r [ ]

请注意,如果您对随机数组进行排序,则点不会改变位置。

在我的例子中(在我的机器上,它是可重复的,因为随机发生器没有种子)答案是 10 次命中,范围从 703 开始​​,这是排序随机数组的索引 62。对于未排序的数组,结果是一样的,只是在 40。
Offtopic:这让我很失望。如果我们有一个“四十多岁”和一个“二三岁”,那么它当然应该是 42 岁。好吧,没办法,叙事的效果在这个宇宙中并没有那么强。 (是的,我知道我在混用两位作者的引述。)

关于c - 在指针数组中放置一个区间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43443628/

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