返回狼盟编程首页
编程搜索 [狼盟旧档]
论坛统计


请输入搜索关键字:
├─◆ 狼盟首页 > 查看贴子 > 详细信息

楼主

一件另男人都很郁闷的事


【程序23】 题目:打印出如下图案(菱形)   *  *** ************ *****  ***   *1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重      for循环,第一层控制行,第二层控制列。 2.程序源代码:#include "stdio.h"#include "conio.h"main(){  int i,j,k;  for(i=0;i<=3;i++)  {    for(j=0;j<=2-i;j++)      printf(" ");    for(k=0;k<=2*i;k++)      printf("*");    printf("
");  }  for(i=0;i<=2;i++)  {    for(j=0;j<=i;j++)      printf(" ");    for(k=0;k<=4-2*i;k++)      printf("*");    printf("
");  }  getch();}相信很多人都看过这个经典100例中的程序我的意思是j<=2-i;和k<=2*i;以及下面的,我都不会想到用for循环这样来控制,我不知道应该怎么样掌握循环语句了.





wyhdiablo [ 1 楼 ]
2006-04-30 23:55:00
接触更多的代码,才能了解更多的知识,很正常,谁都是从不懂到懂的.不过,这和性别有什么关系? 

overfly [ 2 楼 ]
2006-04-30 23:56:00
这么点小事就郁闷么 

hohohaha [ 3 楼 ]
2006-05-01 00:04:00
先让我独自郁闷一会儿,然后睡一觉就好了,呵呵 

中国台湾 [ 4 楼 ]
2006-05-01 00:29:00
LOOK! the better way  #include"stdio.h"#include"stdlib.h"#define N 7int main(void){    int i, j;    for (i = -3; i <= 3; i++)    {        for (j = 0; j < abs(i); j++)        {            printf(" ");        }        for (j = 0; j < N-2*abs(i); j++)        {            printf("*");        }        printf(" ");    }    system("pause");    return 0;} 

oaiei [ 5 楼 ]
2006-05-01 01:22:00
呵呵,FOR循环是最基本的语句了。所以一定要掌握。。 

stt1986 [ 6 楼 ]
2006-05-01 09:22:00
别泄气!通过大量的上机练习,一定会在实践中渐渐深入体会其含义的。 

yunzhou008 [ 7 楼 ]
2006-05-01 09:48:00
台湾同胞的代码很好啊。我原来就不知道。 

中国台湾 [ 8 楼 ]
2006-05-01 16:24:00
引用:台湾同胞的代码很好啊兄弟  我不是台湾同胞 我是大陆di  

lgq146138 [ 9 楼 ]
2006-05-01 18:27:00
那你为什么那样叫呢?? 

zhangmou [ 10 楼 ]
2006-05-01 18:55:00
引用:引用:台湾同胞的代码很好啊兄弟;我不是台湾同胞;我是大陆di;台湾本来就是中国的。你还还这么问。zzzzzzzzzzzzzz 

冷月星光 [ 11 楼 ]
2006-05-01 20:09:00
首先你要知道循环的起始位置以及循环次数,还要掌握循环顺序,多练练 

xtcqpgf [ 12 楼 ]
2006-05-01 20:13:00
这个呀,我见过,逻辑性很强的 

fucan [ 13 楼 ]
2006-05-01 21:21:00
#include "stdio.h"#include "conio.h"int main(){  int i,j,k,m;  printf("请输入一个奇数 m: ");       //m为星号最多的一行的星号个数。  scanf("%d",&m);  while(m%2==0)   {    printf("请重新输入:");    scanf("%d",&m);  }    for(i=0;i<=m/2;i++)    {      for(j=0;j<=m/2-1-i;j++)        printf(" ");      for(k=0;k<=2*i;k++)        printf("*");      printf(" ");    }    for(i=0;i<=m/2-1;i++)    {       for(j=0;j<=i;j++)          printf(" ");    for(k=0;k<=(m-1-2)-2*i;k++)      printf("*");    printf(" ");    }  getch();   return 0;}这个程序我修改了一下,使它有通用性。(菱形的大小可认由我们输入的数字控制) 

海闊天空 [ 14 楼 ]
2006-05-03 23:33:00
此题还有一种更简洁的完写法:(我用的是VB)dim i as integer:dim h as integer:dim n as integer:dim k as integern=7h=(n+1)/2 for i =1 to ns=h-abs(i-h)   's就是一行中*的个数for k = 1 to s print "*";next k printnext i 

风逸 [ 15 楼 ]
2006-05-04 17:18:00
好好读懂那个程序,然后再想想更难的,比如任意输入行数怎么办,一个空心的菱形怎么办.................总之这个一定要掌握。