循环赛日程BUG
这个代码在n<=2时还正常,n>=3就无法显示。。。{:10_292:}#include <stdio.h>
#include <math.h>
int a={0};
/*
void Do(int maxs)
{
int i,j,t,currs,pres;
currs=2;
a=1;
a=2;
a=2;
a=1;
for(t=1;t<maxs;t++)
{
pres=currs;
currs*=2;
for(i=pres+1;i<=currs;i++)
{
for(j=1;j<=pres;j++)
{
a=a+pres;
}
}
for(i=1;i<=pres;i++)
{
for(j=pres+1;j<=currs;j++)
{
a=a+pres;
}
}
for(i=pres+1;i<=currs;i++)
{
for(j=pres+1;j<=currs;j++)
{
a=a;
}
}
}
}
*/
void Do(int k)
{
int i,j,t,n,temp;
n=2;
a=1;
a=2;
a=2;
a=1;
for(t=1;t<k;t++)
{
temp=n;
n=n*2;
for(i=temp+1;i<=n;i++)
{
for(j=1;j<=temp;j++)
{
a=a+temp;
}
}
for(i=1;i<=temp;i++)
{
for(j=temp+1;j<=n;j++)
{
a=a+temp;
}
}
for(i=temp+1;i<=n;i++)
{
for(j=temp+1;j<=n;j++)
{
a=a;
}
}
}
}
int main(void) {
int maxs;
int n,i,j;
scanf("%d",&n);
maxs=pow(2,n);
Do(maxs);
for(i=1;i<=maxs;i++)
{
for(j=1;j<=maxs;j++)
{
printf("%d ",a);
}
putchar('\n');
}
return 0;
} happy含笑 发表于 2020-10-6 13:10
路过
啊这{:10_330:} 你这个程序只能执行1或4个队
如果想执行更多的,要用到递归
参考:https://fishc.com.cn/forum.php?mod=viewthread&tid=79184&extra=page%3D2%26filter%3Dtypeid%26typeid%3D570 巴巴鲁 发表于 2020-10-6 15:58
你这个程序只能执行1或4个队
如果想执行更多的,要用到递归
参考:https://fishc.com.cn/forum.php?mod=v ...
感谢,我就说小甲鱼有一次作业我没做的,好像就是这道题{:10_307:}
不过我同学这样子的(只用了迭代法)成功了,我的算法和他应该一样的,不知道哪里翻车了。。。
以下是迭代法成功的例子:(我实在找不出我哪里敲错了{:10_337:})
#include <stdio.h>
#include <stdlib.h>
int a;
int n = 1;
void fen(int k);
int main()
{
int k, i, j;
a = 1;
scanf("%d", &k);
fen(k);
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
printf("%d ", a);
printf("\n");
}
return 0;
}
void fen(int k)
{
int i, j, t;
for(t = 0; t < k; t++)
{
int half = n;
n = n * 2;
for(j = 0; j < half; j++)
{
for(i = half; i < n; i++)
{
a = a + half;
}
}
for(i = 0; i < half; i++)
{
for(j = half; j < n; j++)
{
a = a + half;
}
}
for(j = half; j < n; j++)
{
for(i = half; i < n; i++)
{
a = a;
}
}
}
} greenery 发表于 2020-10-6 19:06
感谢,我就说小甲鱼有一次作业我没做的,好像就是这道题
不过我同学这样子的(只用了迭代法) ...
你同学牛啊,找到规律了
从27~54行是一个大循环,在里面悠悠几个小循环
页:
[1]