c语言非数值算法

来源:百度知道 编辑:UC知道 时间:2024/06/18 18:15:27
请用C语言编写以下图形,请各位大虾详细写明算法谢谢.
*
***
*****
***
*
晕啊!图形为什么只出来一半啊?左面还有一半是个菱型啊!那么简单的图形只要分两部分做就可以了,我也知道.就因为是个菱形谁能告诉我最精炼的代码啊!

#include<stdio.h>
void put(char,int,int);
void main()
{
int i,j,k,n;
printf ("Input a number: "); /*输入要求输出的行数 */
scanf ("%d",&n);
for(i=0;i<n;i++) {/*循环输出N行 */
if(i>(n-1)/2)
k=n-i-1;
else
k=i;
put('*',(5-2*k-1)/2,k+2);
printf("\n");

}
}
void put(char ch,int sta,int end)
{
int i ,j;
for(i=1;i<=sta;++i)
putchar(' ');
for(j=sta;j<=end;++j)
putchar(ch);
}
借tg_scorpio - 魔法师 四级 的代码用一下。

#include<stdio.h>

void main()
{
int i,j,k,n;
printf ("Input a number: "); //输入要求输出的行数
scanf ("%d",&n);
for(i=0;i<n;i++) {//循环输出N行
if(i>(n-1)/2)
k=n-i-1;
else
k=i;
for(j=1;j<=2*k+1;j++)//输出该行的*
printf("*");
printf("\n");

}
}

上面的程