C语言的打空心正方形问题..

编写一个C程序,输入正方形的边长,输出一个用星号表示的空心正方形.程序允许输入的边长在1到20之间.例如,如果程序读取正方形的边长为4,则打印结果为
* * * *
* *
* *
* * * *
不是空心的话我编到了,空心的正方形程序我想不出来.
请指教一下方法.
1第一个答案太烦琐了,而且运行后结果输出也不正确.

2空心是空格啊.问题是怎么才能打出来.比实心的难多了.

#include<stdio.h>
main()
{
int a,i,j;
printf("输入正方形的边长1-20:");
scanf("%d",&a);
for( i=0;i<a;i++)
printf("*");
printf("\n");
for(i=0;i<a-2;i++)
{
printf("*");
for(j=0;j<a-2;j++)
printf(" ");
printf("*");
printf("\n");
}
for(i=0;i<a;i++) printf("*");
printf("\n");
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-03-29
#include<stdio.h>
main()
{
int
a,i,j;
printf("输入正方形的边长1-20:");
scanf("%d",&a);
for(
i=0;i<a;i++)
printf("*");
printf("\n");
for(i=0;i<a-2;i++)
{
printf("*");
for(j=0;j<a-2;j++)
printf("
");
printf("*");
printf("\n");
}
for(i=0;i<a;i++)
printf("*");
printf("\n");
}
第2个回答  2007-05-13
空心正方形:
#include <stdio.h>
outh(int len)
{
int m;
for(m=1;m<=len;m++)
printf("* ");
printf("\n");
}
outs(int len)
{
int i,j;
for(i=1;i<=len-2;i++)
{
printf("*");
for(j=0;j<=len-2;j++)
printf(" ");
printf("*");
printf("\n");
}
if(!(i-1))
printf("\n");

}

main()
{
int b,i;
printf("please input bian chang(2~24):");
scanf("%d",&b);
if(b>1&&b<25)
{
outh(b);
outs(b);
outh(b);
}
else printf("can not show\n");
}
第3个回答  2007-05-13
dujxyoupan 做的有点复杂吧,肯定还有更简单的方法。。
第4个回答  2007-05-13
空心不就是空格吗?

C语言的打空心正方形问题..
include<stdio.h> main(){ int a,i,j;printf("输入正方形的边长1-20:");scanf("%d",&a);for( i=0;i<a;i++)printf("*");printf("\\n");for(i=0;i<a-2;i++){ printf("*");for(j=0;j<a-2;j++)printf(" ");printf("*");printf("\\n");} for(i=0;i...

C语言打印空心*形正方形(用函数来写)
include<stdio.h> int main (void){ int x,y,num;printf ("请输入正方形的边长:");scanf ("%d",num);for (x = 0;x < num;x++){ for (y = 0;y < num;y++){ if (x == 0 || y == 0 || x == num - 1 || y == num - 1){\/\/正方形的4条边,如果符合 printf...

C语言编程编程给定整数n输出由字符*组成的空心正方形
思路:输出正方形即输出正方形的外围就行,外围有个特点就是行列下标必有0或者是正方形的大小减一,输入一个n表示正方形大小,输出一个由*组成的正方形。includestdio.hvoidmain(){intn,i;scanf(%d,&n);\/*输入个数n*\/for(i=1;i=n;i++)printf(*);\/*循环输出字符*,若想修改显示格式...

大佬救命!打印一个空心正方形c语言
用一个二重循环就解决了。include <stdio.h>int main(){int i,j,n; scanf("%d",&n); for(i=1;i<=n\/2+1;i++) {for(j=1;j<=n;j++) if(i==1 || i==n\/2+1) printf("%c",(j==1 || j==n)?'+':'-'); else printf("%c",(j==1 || j==n)?'|...

C语言编程:从键盘输入一个正方形的边长,求出它的面积并输出。
回答:#include<stdio.h>int main(){int a;a:printf("请输入正方形边长:");scanf("%d",&a);a*=a;printf("正方形边长为:%d\\n",a);system("pause");system("cls");goto a;}

用C语言程序打印一个空心的矩形的问题
回答:for循环里(i=n,i<=n;i--)

c语言输出*组成的空心正方形
include<stdio.h>int main(){int n;\/\/正方形的边长int i,j;printf("请输入正方形的边长:\\n");scanf("%d",&n);for(i = 1;i<=n;i++){for(j = 1;j<=n;j++){if(i == 1||i == n){printf("* ");}else{if(j == 1 || j == n){printf("* ");}else{printf(" ...

C语言关于编空心正方形的程序,高手帮我看看哪错了
{ int len;printf("Input Len :");scanf_s("%d",&len);if(len>=2){ for(int i=0; i<len; i++)printf("* ");printf("\\n");for(int i=0; i<len-2; i++){ printf("* ");for(int j=0; j<len-2; j++){ printf(" ");} printf("* \\n");;} for(int i=0;...

C语言:空心正方形
int main(void){ int n;int i,j;int sps,m,sum;clrscr();scanf("%d",&n);sps=3*(n-2);printf("\\n\\n");for(i=1;i<=n;i++) printf("%3d",i);printf("\\n\\n");for(m=2*(n-1),sum=5*n-3;i<=m;i++){ printf("\\n");printf("%3d",sum-i);for(j=0;j<sps...

C语言编程编程给定整数n输出由字符*组成的空心正方形
int main(){ int n;scanf("%d",&n);int i;for(i=0;i<n;i++){ printf("*");if(i==n-1){printf("\\n");} } for(i=0;i<n-2;i++){ int x;for(x=0;x<n;x++){ if(x==0||x==n-1){printf("*");} else{printf(" ");} if(x==n-1){printf("\\n");} ...

相似回答