题目: 写一个程序可以根据用户输入的size,打出大小和边,为一个中空的方形,边和行为星号组成,*,这个程序必须可以认出1到20的数值范围
例如,如果你输入size等于5,程序应该排列出以下图案:
*****
* *
* *
* *
*****
这个~~ 我用for 语法弄了我半天,还是不知道怎么弄中空....
那位高手,或是知道源码的帮帮...
[此贴子已经被作者于2006-2-24 6:58:45编辑过]
我试了一下,不过代码效率可能不高。高手请指教
#include <stdio.h>
#include <conio.h>
#define MAX 20
main()
{
int n,i,j;
system("cls");
do
{
printf("n=");
scanf("%d",&n);
}while(n>=MAX);
for (i=1;i<=n;i++)
if (i==1||i==n)
{
for (j=1;j<=n;j++)
printf("*");
printf("\n");
}
else
for (j=1;j<=n;j++)
if (j==1)
printf("*");
else if (j==n)
printf("*\n");
else
printf(" ");
getch();
}
只要用循环控制好*和空格,按从上到下,同一行中从左到的方向,用循环控制个数
main()
{
int i,j; /*i 控制行号,J控制列号 */
int size;
printf("please input size:");
scanf("%d",&size);
printf("\n");
for(i=1;i<=size;i++) printf("*"); /*输出第一行*/
for(j=2;j<size;j++) /*用循环输出第二行至第SIZE-1行 */
{
printf("\n*"); /*先输出每行开头的'*'字符*/
for(i=2;i<size;i++) /*用循环输出每行两个'*'字符之间的空格*/
printf(" "); /*双引号内有一个空格*/
printf("*"); /*输出每行最后的一个'*'字符*/
}
printf("\n");
for(i=1;i<=size;i++) printf("*"); /*输出最后一行*/
getch(); /*暂停一下,看结果*/
}
[此贴子已经被作者于2006-2-24 8:50:26编辑过]