目前主要分为三个专栏,后续还会添加:
感谢阅读!
初来乍到,如有错误请指出,感谢!
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的X形图案。
输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。
输出描述:
针对每行输入,输出用“*”组成的X形图案。
思路 :
可以借鉴二维数组的方式来打印 星星和空格
看成i行 j列
由题目输出示例可以看出
当i==j的时候 打印一个斜列
当i+j==n-1的时候 再打印一个斜列
i // 行 | |||||
j //列 | 0 | 1 | 2 | 3 | |
0 | * | * | |||
1 | * | * | |||
2 | * | * | |||
3 | * | * |
代码 1 :
/*思路 可以借鉴二维数组的方式来打印 星星和空格
看成i行 j列
由题目输出示例可以看出
当i==j的时候 打印一个斜列
当i+j==n-1的时候 再打印一个斜列
*/
# include <stdio.h>
int main ()
{
int n = 0;
while(scanf("%d",&n)!=EOF)
{
int i = 0;
//控制行
for(i = 0; i < n; i++)
{
int j = 0;
//控制列
//for(j = 0; j < i; j++) error
//这里 j<i 是错误的 因为这里要根据n的值来进行判断 而不是根据i
for(j = 0; j < n; j++)
{
//使用if判断 条件如下
//当i==j的时候 打印一个斜列
//当i+j==n-1的时候 再打印一个斜列
if (i==j||i+j==n-1)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
return 0;
}
代码 2 :
int main()
{
int n = 0;
while(~scanf("%d",&n))
{
//n*n的数组,对角线初始化为*,其余初始化为‘ ’,最后打印这个二维数组
char arr[20][20];
int i = 0,j = 0;
for(i = 0;i<n;i++)
{
for(j = 0;j<n;j++)
{
//主对角线
if(i==j)
{
arr[i][j] = '*';
}
//反对角线
else if((i+j)==(n-1))
{
arr[i][j] ='*';
}
else
{
arr[i][j]=' ';
}
printf("%c",arr[i][j]);
}
printf("\n");
}
}
return 0;
}
标签:斜列,20,输出,int,打印,牛客,BC110,数组,网刷题 From: https://blog.csdn.net/m0_64000959/article/details/139390667