多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。
针对每行输入,输出用“*”组成的“空心”正方形,每个“*”后面有一个空格。
4
* * * * * * * * * * * *
5
* * * * * * * * * * * * * * * *
#include <stdio.h>
int main()
{
int n = 0;
while (scanf("%d", &n) != EOF)
{
char arr[n][n];//创建一个n*n的二维数组,并初始化*
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
arr[i][j] = '*';
}
}
if (n > 2)//n>2时才有中间区域
{
for (int i = 1; i < n - 1; i++)//将中间区域改为空格
{
for (int j = 1; j < n - 1; j++)
{
arr[i][j] = ' ';
}
}
}
for (int i = 0; i < n; i++)//输出
{
for (int j = 0; j < n; j++)
{
printf("%c ", arr[i][j]);
}
printf("\n");
}
}
return 0;
}
int main() {
int n;
while (scanf("%d", &n) != EOF) {
for (int i = 0; i < n; i++) {
if (i == 0 || i == n - 1) {
for (int j = 0; j < n; j++) {
printf("* ");
}
printf("\n");
}
else {
printf("* ");
for (int k = 0; k < n - 2; k++) {
printf(" ");
}
printf("* \n");
}
}
}
return 0;
} #include <stdio.h>
int main() {
int n = 0;
while (scanf("%d", &n) != EOF)
{
//打印第一行
for(int j = 0; j < n; j++ )
printf("* ");
printf("\n");
//打印中间n-2行
for(int i = 0; i< n-2; i++)
{
printf("* ");
for(int j = 0; j < n - 2; j++)
printf(" ");
printf("*\n");
}
//打印最后一行
for(int j = 0; j < n; j++ )
printf("* ");
printf("\n");
}
return 0;
} /*思路 : 可以把题目示例中的正方形看成 两个部分
行 为一部分 列为一部分
i和j为0的时候 打印一行或者一列
其次 当 i==n-1 , j==n-1 的时候 打印一行或者一列
1.i==0 的时候打印一整行2.j==0的时候打印一整列3.i==n-1 的时候 打印一个
4.j==n-1 的时候 打印一个 就可以看到绿色箭头所指的地方 正好就是j== 5-1=4
*/
# 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 < n;j++)
{
// i和j为0的时候 打印一行或者一列
// 其次 当 i==n-1 , j==n-1 的时候 打印一行或者一列
if (i==0||j==0||i==n-1||j==n-1)
{
printf("* ");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
return 0;
} //BC111 空心正方形图案
#include "stdio.h"
int main(){
int n;
while((scanf("%d",&n))!=EOF){
for(int i=0;i<n;i++){//控制行
for(int j=0;j<n;j++){//控制列
if(i==0 || i==n-1 || j==0 || j==n-1){
printf("* ");
}
else{
printf(" ");//这里有三个空格
}
}
printf("\n");
}
}
return 0;
} #include <stdio.h>
int main()
{
int input = 0;
int i = 0;
int j = 0;
while (scanf("%d", &input) == 1)
{
for (i = 0; i < input; i++)//控制换行
{
for (j = 0; j < input; j++)//控制输出
{
if (i == 0 || i == input - 1 || j == 0 || j == input - 1)
{
printf("* ");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
return 0;
} #include<stdio.h>
int main()
{
int n = 0;
int i = 0;
printf("请输入数字:>");
scanf_s("%d", &n);
for (i = 0; i < n; i++)
{
int j = 0;
for (j = 0; j < n; j++)
{
if (i == 0 || i == n - 1)
{
printf("* ");
}
else if (j == 0 || j == n - 1)
printf("* ");
else
printf(" ");
}
printf("\n");
}
return 0;
}