
求教:杭电ACM 2074 Output Limit Exceeded了
这个要怎么该才行。。。还有这个程序真的很费时吗??哪里??#include<stdio.h>#definem80voidmain(){chara[m][m],b,c,d;...
这个要怎么该才行。。。还有这个程序真的很费时吗??哪里??
#include<stdio.h>
#define m 80
void main()
{
char a[m][m],b,c,d;
int i,j,k,h;
while(1)
{
scanf("%d %c %c",&k,&b,&c);
for(h=0;h<(k+1)/2;h++)
{
i=h;j=h;
if(h%2==0) d=b;else d=c;
while(i<k-h)
{a[i][j]=d;a[i][k-h-1]=d;i++;}
while(j<k-h)
{a[i-1][j]=d;a[h][j]=d;j++;}
}
a[0][0]=' ';a[k-1][k-1]=' ';a[0][k-1]=' ';a[k-1][0]=' ';
for(i=0;i<k;i++)
{
for(j=0;j<k;j++)
printf("%c",a[i][j]);
printf("\n");
}
}
} 展开
#include<stdio.h>
#define m 80
void main()
{
char a[m][m],b,c,d;
int i,j,k,h;
while(1)
{
scanf("%d %c %c",&k,&b,&c);
for(h=0;h<(k+1)/2;h++)
{
i=h;j=h;
if(h%2==0) d=b;else d=c;
while(i<k-h)
{a[i][j]=d;a[i][k-h-1]=d;i++;}
while(j<k-h)
{a[i-1][j]=d;a[h][j]=d;j++;}
}
a[0][0]=' ';a[k-1][k-1]=' ';a[0][k-1]=' ';a[k-1][0]=' ';
for(i=0;i<k;i++)
{
for(j=0;j<k;j++)
printf("%c",a[i][j]);
printf("\n");
}
}
} 展开
展开全部
首先我没有看题,只是指出LZ代码中的一些问题。
Output Limit Exceeded错误不是超时,而是输出过多,一般是由死循环不断输出引起的。
LZ的while(1)循环没有终止条件,不断执行内部的语句序列,导致了输出超限。
应当根据题意,判断输入终止条件。
Output Limit Exceeded错误不是超时,而是输出过多,一般是由死循环不断输出引起的。
LZ的while(1)循环没有终止条件,不断执行内部的语句序列,导致了输出超限。
应当根据题意,判断输入终止条件。
2011-05-24
展开全部
#include<stdio.h>
char s[1000][1000];
main()
{
int a,i=-1,j;
char b,c,d;
while(scanf("%d %c %c",&a,&b,&c)!=EOF)
{
if(i!=-1)printf("\n");
if(a==1)
{
printf("%c\n",b);
continue;
}
if(a/2%2==0)
d=b,b=c,c=d;
for(i=0;i<a;i++)
for(i<=a/2?(j=i):(j=a-i);j<(i<=a/2?(a-i):i);j++)
i%2==0?(s[i][j]=c):(s[i][j]=b);
for(j=0;j<a;j++)
for(j<a/2?(i=j):(i=a-j);i<=(j<=a/2?(a-j-1):j);i++)
j%2==0?(s[i][j]=c):(s[i][j]=b);
s[0][0]=s[a-1][0]=s[0][a-1]=s[a-1][a-1]=' ';
for(i=0;i<a;i++)
{
for(j=0;j<a;j++)
printf("%c",s[i][j]);
printf("\n");
}
}
}
char s[1000][1000];
main()
{
int a,i=-1,j;
char b,c,d;
while(scanf("%d %c %c",&a,&b,&c)!=EOF)
{
if(i!=-1)printf("\n");
if(a==1)
{
printf("%c\n",b);
continue;
}
if(a/2%2==0)
d=b,b=c,c=d;
for(i=0;i<a;i++)
for(i<=a/2?(j=i):(j=a-i);j<(i<=a/2?(a-i):i);j++)
i%2==0?(s[i][j]=c):(s[i][j]=b);
for(j=0;j<a;j++)
for(j<a/2?(i=j):(i=a-j);i<=(j<=a/2?(a-j-1):j);i++)
j%2==0?(s[i][j]=c):(s[i][j]=b);
s[0][0]=s[a-1][0]=s[0][a-1]=s[a-1][a-1]=' ';
for(i=0;i<a;i++)
{
for(j=0;j<a;j++)
printf("%c",s[i][j]);
printf("\n");
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询