大佬救命!打印一个空心正方形c语言
按要求,给定边长,打印一个正方形。输入输入数据有多组,每组占一行,每行一个偶数n(4<=n<=100),表示正方形的边长。以EOF结束。输出按照样例格式输出正方形。由于行...
按要求,给定边长,打印一个正方形。
输入
输入数据有多组,每组占一行,每行一个偶数n(4<=n<=100),表示正方形的边长。
以EOF结束。
输出
按照样例格式输出正方形。由于行间距比列间距大,我们输出的列数为正方形边长,而行数只有列数的一半再加1(近似正方形)。
四个角落的符号为+,水平方向使用"-"符号,垂直方向使用"|"符号,中间为空格,末尾没有多余空格。
如下
输入4
输出图形
+--+
| |
+--+ 展开
输入
输入数据有多组,每组占一行,每行一个偶数n(4<=n<=100),表示正方形的边长。
以EOF结束。
输出
按照样例格式输出正方形。由于行间距比列间距大,我们输出的列数为正方形边长,而行数只有列数的一半再加1(近似正方形)。
四个角落的符号为+,水平方向使用"-"符号,垂直方向使用"|"符号,中间为空格,末尾没有多余空格。
如下
输入4
输出图形
+--+
| |
+--+ 展开
2个回答
展开全部
#include "stdio.h"
int main(int argc,char *argv[]){
int n,i,j;
printf("Please enter n(int 3<n<101)...\nn=");
while(scanf("%d",&n)==1 && n>3 && n<101)
for(i=0;i<n;i++){
for(j=0;j<n;j++)
if((i==0 || i==n-1) && (j==0 || j==n-1))
printf("+");
else if((i==0 || i==n-1) && j>0 && j<n-1)
printf("-");
else if(i>0 && i<n-1 && (j==0 || j==n-1))
printf("|");
else
printf(" ");
printf("\n");
}
printf("\n");
return 0;
}
运行样例:
更多追问追答
追问
n=4是一边只有一个|
追答
#include "stdio.h"
int main(int argc,char *argv[]){
int n,i,j,m;
printf("Please enter n(int 3<n<101)...\nn=");
while(scanf("%d",&n)==1 && n>3 && n<101)
for(m=(n>>1)+1,i=0;i<m;i++){
for(j=0;j<n;j++)
if((i==0 || i==m-1) && (j==0 || j==n-1))
printf("+");
else if((i==0 || i==m-1) && j>0 && j<n-1)
printf("-");
else if(i>0 && i<m-1 && (j==0 || j==n-1))
printf("|");
else
printf(" ");
printf("\n");
}
printf("\n");
return 0;
}
运行样例:
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询