学习笔记

题目: 叠筐

链接:题目链接

Problem Description

需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。


Input

输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;


Output

输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。


Sample Input

11 B A

5 @ W


Sample Output

AAAAAAAAA

ABBBBBBBBBA

ABAAAAAAABA

ABABBBBBABA

ABABAAABABA

ABABABABABA

ABABAAABABA

ABABBBBBABA

ABAAAAAAABA

ABBBBBBBBBA

AAAAAAAAA

@@@

@WWW@

@W@W@

@WWW@

@@@

题目本意就是通过你输入的三元组来画出一个筐,与其说是叠框,感觉就是给你ASCII里面的随机两种字符(自己输入的)来画出一个筐来.题目很明确,思路也很明确,但是有很多很多小小的细节让我不能AC好几次,关键在于题目未说明四个角是空格还是结束符,每个例子是不是都有间隔?等等很多细节。

1.输出之间要空行(主要这里栽倒)

2.四个角的情况如何处理

3.N=1的时候

4.含有字符和字母的时候

5.最后的输出不能带有空行!

代码:

#include <stdio.h>

#define Max 100

int main(void){

int floor = 0;

int flag = 0;

char a, b;

char sum[Max][Max];

while(scanf("%d %c %c",&floor, &a, &b)==3){

int count = (floor+1)/2;

if(flag==1){

                printf("\n");

            }

        flag=1;

if(floor == 1){

printf("%c\n",a);

continue;

}

else{

for(int j=1;j<=floor;j++){

if(j == 1 || j == floor){

for(int i = 1;i<=floor;i++)

if((a<'A'||a>'z')||(b<'A'||b>'z'))

sum[j][i] = a;

else

sum[j][i] = b;

}

else if(j<=count){

for(int i = 1;i<=floor;i++){

if(i>=j && i<=(floor-j+1)){

if((a<'A'||a>'z')||(b<'A'||b>'z')){

if(j%2 == 0){

sum[j][i] = b;

}

else

sum[j][i] = a;

}

else{

if(j%2 == 0){

sum[j][i] = a;

}

else

sum[j][i] = b;

}

}

else{

sum[j][i] = sum[j-1][i];

}

}

}

else{

for(int i=1;i<=(count-1);i++)

for(int j=1;j<=floor;j++)

sum[count+i][j] = sum[count-i][j];

}

}

for(int i = 1;i<=floor;i++){

for(int j = 1;j<=floor;j++){

if((i == 1&&j==1) || (i==1&&j==floor) || (i == floor&&j==1) || (i==floor&&j==floor))

printf(" ");

else

printf("%c",sum[i][j]);

}

printf("\n");

}

}

}

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 9,080评论 0 2
  • FP 3.1.函数 函数的地位和一般的变量是同等的,可以作为函数的参数,可以作为返回值。传入函数的任何输入是只读的...
    时待吾阅读 4,741评论 0 2
  • 第004天作业改正: Craps赌博游戏 练习 1.输出如下:1 12 43 9... ...10 100 ...
    迷茫o阅读 2,688评论 0 0
  • 每日要点 方法的重载 方法的重载: 在一个类中可以出现同名方法 只要它们的参数列表不同就能够加以区分。参数列表不同...
    迷茫o阅读 3,923评论 0 1
  • 朋友,你去过黟县吗?你觉得好玩儿吗?今天,我们一家就来到了黟县,领略了一下黟县风光! 清晨6:30,我揉了揉睡眼惺...
    谢婧雯阅读 2,405评论 0 3

友情链接更多精彩内容