提交ACM时 Presentation Error
吉林大学acm1009Zorro代码如下:#include"stdio.h"#defineM500#defineN500voidsetZ(intlen,charz[M][...
吉林大学 acm 1009 Zorro
代码如下:
#include "stdio.h"
#define M 500
#define N 500
void setZ(int len,char z[M][N]);
void printfZ(int len,char z[M][N]);
int main()
{
int n,i,j;
char z[M][N];
bool flag=true;
while(scanf("%d",&n)!=EOF&&(n!=0))
{
for(i=0;i<=M-1;i++)
for(j=0;j<=N-1;j++)
z[i][j]='0';
if(!flag)
printf("\n");
else
flag=false;
setZ(n,z);
printfZ(n,z);
}
return 0;
}
void setZ(int len,char z[M][N])
{
int i,j,k=0;
char c[30]="abcdefghijklmnopqrstuvwxyz";
for(i=0;i<=len-1;i++)
{
if(i==0||i==len-1)
{
for(j=0;j<=len-1;j++)
{
z[i][j]=c[k%26];
k=k+1;
}
}
else
{
for(j=0;j<=len-1;j++)
{
if(i+j==len-1)
{
z[i][j]=c[k%26];
k=k+1;
}
}
}
}
}
void printfZ(int len,char z[M][N])
{
int i,j;
for(i=0;i<=len-1;i++)
{
for(j=0;j<=len-1;j++)
{
if(z[i][j]!='0')
printf("%c",z[i][j]);
else
printf("0");
}
if(i!=len-1)
printf("\n");
}
}
谢谢你的回答,但有几个地方还是迷惑,希望再指教一下,
1.把‘0’换成‘ ’
2.printfZ(n,z);加上了printf("\n");
提交还是显示 Presentation Error
还有“printfZ(n,z);也有错误,字母后面是不应该有空格的”是什么意思,我的字母后没有空格呀,
特殊情况n=1时应该输出a吧
再次期待您的回答。 展开
代码如下:
#include "stdio.h"
#define M 500
#define N 500
void setZ(int len,char z[M][N]);
void printfZ(int len,char z[M][N]);
int main()
{
int n,i,j;
char z[M][N];
bool flag=true;
while(scanf("%d",&n)!=EOF&&(n!=0))
{
for(i=0;i<=M-1;i++)
for(j=0;j<=N-1;j++)
z[i][j]='0';
if(!flag)
printf("\n");
else
flag=false;
setZ(n,z);
printfZ(n,z);
}
return 0;
}
void setZ(int len,char z[M][N])
{
int i,j,k=0;
char c[30]="abcdefghijklmnopqrstuvwxyz";
for(i=0;i<=len-1;i++)
{
if(i==0||i==len-1)
{
for(j=0;j<=len-1;j++)
{
z[i][j]=c[k%26];
k=k+1;
}
}
else
{
for(j=0;j<=len-1;j++)
{
if(i+j==len-1)
{
z[i][j]=c[k%26];
k=k+1;
}
}
}
}
}
void printfZ(int len,char z[M][N])
{
int i,j;
for(i=0;i<=len-1;i++)
{
for(j=0;j<=len-1;j++)
{
if(z[i][j]!='0')
printf("%c",z[i][j]);
else
printf("0");
}
if(i!=len-1)
printf("\n");
}
}
谢谢你的回答,但有几个地方还是迷惑,希望再指教一下,
1.把‘0’换成‘ ’
2.printfZ(n,z);加上了printf("\n");
提交还是显示 Presentation Error
还有“printfZ(n,z);也有错误,字母后面是不应该有空格的”是什么意思,我的字母后没有空格呀,
特殊情况n=1时应该输出a吧
再次期待您的回答。 展开
展开全部
同学你好
你的程序把z[M][N]初始化为‘0’了,而样例里面是空格啊,所以要把‘0’换成‘ ’。
还有空行也有问题啊
printfZ(n,z);后面应该加上printf("\n");
printfZ(n,z);也有错误,字母后面是不应该有空格的
特殊情况是你也错了,当n=1时你的程序输出的是
a
a
应该是
a
b
其实画图题可以直接输出的,不需要先存到字符数组中
同学你自己再看看吧,争取早日ac这题~有困难可以再提
关于n=1这点,答案是
a
b的
“字母后面是不应该有空格的”就是说你的程序把数组里面的全部内容都输出来了,但是按照题目要求‘Z’的表示‘/’的字母后面是不应该有除了回车以外的字符的。
本题考的主要是for循环的内容,我把我自己的代码发到下面,你看下。画图题一题懂了就可以举一反三了。
kix C++ 2010-05-14 13:00:51 Accepted (10+0+0+0) 0.01 443
#include <stdio.h>
int main()
{
int n,g=0;
while(scanf("%d",&n) && n)
{
int i,j,k=0;
char c='a';
if( g++ )
printf("\n");
//输出第一行
for( i=0; i<n; i++,k=(k+1)%26 )
printf("%c",c+k);
printf("\n");
for( i=1; i<n-1; i++,k=(k+1)%26 )
{
//输出n-i-1个空格,这个要计算,和i有关
for( j=n-i-1; j>=1; j-- )
printf(" ");
//输出那个字符加回车
printf("%c\n",c+k);
}
//输出最后一行
for(i=0; i<n; i++,k=(k+1)%26)
printf("%c",c+k);
printf("\n");
}
return 0;
}
你的程序把z[M][N]初始化为‘0’了,而样例里面是空格啊,所以要把‘0’换成‘ ’。
还有空行也有问题啊
printfZ(n,z);后面应该加上printf("\n");
printfZ(n,z);也有错误,字母后面是不应该有空格的
特殊情况是你也错了,当n=1时你的程序输出的是
a
a
应该是
a
b
其实画图题可以直接输出的,不需要先存到字符数组中
同学你自己再看看吧,争取早日ac这题~有困难可以再提
关于n=1这点,答案是
a
b的
“字母后面是不应该有空格的”就是说你的程序把数组里面的全部内容都输出来了,但是按照题目要求‘Z’的表示‘/’的字母后面是不应该有除了回车以外的字符的。
本题考的主要是for循环的内容,我把我自己的代码发到下面,你看下。画图题一题懂了就可以举一反三了。
kix C++ 2010-05-14 13:00:51 Accepted (10+0+0+0) 0.01 443
#include <stdio.h>
int main()
{
int n,g=0;
while(scanf("%d",&n) && n)
{
int i,j,k=0;
char c='a';
if( g++ )
printf("\n");
//输出第一行
for( i=0; i<n; i++,k=(k+1)%26 )
printf("%c",c+k);
printf("\n");
for( i=1; i<n-1; i++,k=(k+1)%26 )
{
//输出n-i-1个空格,这个要计算,和i有关
for( j=n-i-1; j>=1; j-- )
printf(" ");
//输出那个字符加回车
printf("%c\n",c+k);
}
//输出最后一行
for(i=0; i<n; i++,k=(k+1)%26)
printf("%c",c+k);
printf("\n");
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询