基本算法----循环控制---星号菱形
本问题转载于 yzfy,org 论坛 输入一个奇数n,输出对角线长为n的实心或者空心的菱形图案
如当n=5时,有:
*
***
*****
***
*
下面是我的程序: 偷偷在主管的机子上用TC2。0调式的没问题
/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) [url=http://]http://[/url] **
*****************************************************************/
#include <stdio.h>
#define OC putchar
int main(void)
{
int n , num , _1st , line , out , bj = 1 ;
while( scanf( "%d" , &n ) != EOF && n%2 )
{
if ( n<0 ) { n *= -1 ; bj = 0 ; }
for(line = n,num = line/2+1,_1st = 1; line ; line-->n/2+1 ? (++num,_1st+=2):(--num,_1st-=2))
for(out = num ; out ; --out)
(out != 1) ? ( out==_1st ? OC('*'):( ( out<_1st&&bj ) ? OC('*'):OC(' ') ) ):( OC('*') , OC('\n'));
}
return 0 ;
}
** HighlightCodeV3.0 software by yzfy(雨中飞燕) [url=http://]http://[/url] **
*****************************************************************/
#include <stdio.h>
#define OC putchar
int main(void)
{
int n , num , _1st , line , out , bj = 1 ;
while( scanf( "%d" , &n ) != EOF && n%2 )
{
if ( n<0 ) { n *= -1 ; bj = 0 ; }
for(line = n,num = line/2+1,_1st = 1; line ; line-->n/2+1 ? (++num,_1st+=2):(--num,_1st-=2))
for(out = num ; out ; --out)
(out != 1) ? ( out==_1st ? OC('*'):( ( out<_1st&&bj ) ? OC('*'):OC(' ') ) ):( OC('*') , OC('\n'));
}
return 0 ;
}
[[it] 本帖最后由 死了都要C 于 2008-6-11 05:28 编辑 [/it]]
[[it] 本帖最后由 死了都要C 于 2008-6-11 08:45 编辑 [/it]]
[[it] 本帖最后由 死了都要C 于 2008-6-11 08:45 编辑 [/it]]