gpt4 book ai didi

C 编程数组循环

转载 作者:行者123 更新时间:2023-12-02 00:10:31 25 4
gpt4 key购买 nike

对于我一直遇到的这个问题,我们将不胜感激。我试图创建一个循环来查找一个 30x30 数组,其主对角线值都大于或等于 7。数组由随机整数填充。

我的问题是循环本身,我似乎无法弄清楚如何创建如此大量的循环……快把我逼疯了!

当我设法创建了一个满足条件的数组时,我需要显示它进行了多少次尝试。如果尝试次数超过 100 万次,程序应该简单地“放弃”,显示这是不可能的。

这是我到目前为止设法想出的(不是整个代码,只是我需要帮助的部分),但是输出实际上什么也没有。我保证我什至离正确的解决方案还差得很远……但我希望能指出正确的方向!

提前致谢:)

count=0;

for(a=0;a<30;++a)
for(b=0;b<30;++b)
random2[a][b]=rand()%10;

while(count<=1000000)
{
for(a=0;a<30;++a)
{
if(random2[a][a]>=7)
{
++a;
if(a==30&&random2[a][a]>=7)
printf("%d", count);
}
else
{
++count;
for(a=0;a<30;++a)
for(b=0;b<30;++b)
random2[a][b]=rand()%10;
}
}
}

printf("%d", count);

最佳答案

您在循环中做了一些奇怪的事情。简单的修复是删除其中一个 ++a(我建议第二个),并在 else 中删除 break

更好的解决方法是按照您的意思进行编码。最小化改变你的例子:

int count,a,b;
for(count = 0; count<=1000000; ++ count) {
for(a=0;a<30;++a)
for(b=0;b<30;++b)
random2[a][b]=rand()%10;
for(a=0;a<30;++a)
{
if(random2[a][a]>=7)
{
if(a==30&&random2[a][a]>=7)
printf("%d", count);
}
else
{
break;
}
}
if( a == 30 ) {
break;
}
}

更好的解决方法是通过算法计算数组,而不是依靠随机机会来获得好的结果。例如,将对角线随机设置为 7、8 或 9(这将给出相同的最终结果和概率)。

关于C 编程数组循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15730855/

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