因为作业原因,老师让写,想了又想写过几次,感觉这次代码更好。下面附上我自己写的代码,
#include <stdio.h>
int main()
{
int i,j,k,n,num;
printf("请输入要显示的行数,若你输入的是偶数则显示n+1行:");
scanf("%d",&num);
n = num/2;
for(i = 1;i <= n+1;i++)
{
for(j=i;j <= n;j++)
{
printf(" ");
}
for(k=2*i-1;k > 0;k--)
{
printf("*");
}
printf("\n");
}
for(i = n; i > 0;i--)
{
for (j = 0 ;j < (n-i+1) ; j++)
{
printf(" ");
}
for(k = 2*i-1;k >0;k--)
{
printf("*");
}
printf("\n");
}
return 0;
}
下面是我们老师写的代码
/*
输出以下图案:
假定总行数为n,则上部图案占n/2+1,下部图案 占n/2
*
***
*****
*******
*****
***
*
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0, j = 0, count, n;
printf("请输入一个[3,31]的奇数:");
scanf("%d", &n);
count = n / 2;
//输出上部的图案
for( i = 1; i <= count + 1; i++)
{
//输出前导空格
for( j = 1; j <= count + 1 - i; j++)
{
printf(" ");
}
//输出*
for( j = 1; j <= 2 * i - 1; j++)
{
printf("*");
}
//输出换行
printf("\n");
}
//输出下部的图案
for( i = count + 2; i <= n; i++)
{
//输出前导空格
for( j = 1; j <= i - (count + 1); j++)
{
printf(" ");
}
//输出*
for( j = 1; j <= 2 * (n - i) + 1; j++)
{
printf("*");
}
//输出换行
printf("\n");
}
system("pause");
return 0;
}
输出效果
本文链接:http://rainss.cn/essay/646.html