当前位置: 代码迷 >> C语言 >> 求助:循环问题2?
  详细解决方案

求助:循环问题2?

热度:460   发布时间:2004-05-18 12:15:00.0
求助:循环问题2?

我现在学C被循环卡住了,总是转不过弯来,急死我了,我会用C编下列图形:

* ** *** **** ***** #include <stdio.h> void main() { int a,b,c; printf("输入行数:"); scanf("%d",&a); for(b=0;b<a;b++) { printf("\n"); for(c=0;c<b;c++) printf("*"); } printf("\n"); } 也是看书上的例子,然后回味了半天才有点那么点意思,

却不会编下列图形了, ********* ******** ******* ****** ***** **** *** ** *

我的思路是这样的: #include <stdio.h> void main() { int a,b,c; a=0; //初始化a; printf("请输入行数:",a); scanf("&d",&a); for(b=a;b>0;b--)//每行*的个数等于输入的行数,然后自减, 最后一行等于1个*号,不知道是否可以这样理解。 { printf("\n");//循环换行 for(c=b;c>0;c--) //这里有点理解不了。 { printf("*"); } } }

晕,既然成功了。我试了好半天,但是还有有点想不通。请大虾讲解一下思路

[此贴子已经被作者于2004-05-18 12:56:58编辑过]

搜索更多相关的解决方案: include  

----------------解决方案--------------------------------------------------------

for(int i=5;i>=0;i--){

for(int j=i; j>0;j--)

puts("*");

pritef("/n");

}


----------------解决方案--------------------------------------------------------
你的程序不好理解 看我的 main() { int i,k; for(i=9;i<=1;i--) {for(j=1;j<=i;j++) printf("%c",'*'); printf("%c",'/n'); } }
----------------解决方案--------------------------------------------------------
以下是引用147043838在2005-5-15 16:16:05的发言: 你的程序不好理解 看我的 main() { int i,k; for(i=9;i<=1;i--) {for(j=1;j<=i;j++) printf("%c",'*'); printf("%c",'/n'); } }
你这种程序能运行???? for(c=b;c>0;c--) //这里有点理解不了。 { printf("*"); } 这里是输出*个数, 先是c=9,输出9个,之后for(b=a;b>0;b--)//每行*的个数等于输入的行数,然后自减, b自减,b=8了, 赋值给c,就又输出8个* 一直这样下去; 这个简单点吧~~ main(){ int i,j; 定义一个换行,一个* 的个数; printf("input a number:"); scanf("%d",&i); for(j=0;i>0;i--) { for(j=i;j>0;j--) printf("*"); printf("\n"); } }
----------------解决方案--------------------------------------------------------
以下是引用当当在2004-5-18 12:15:36的发言:

我现在学C被循环卡住了,总是转不过弯来,急死我了,我会用C编下列图形:

* ** *** **** ***** #include <stdio.h> void main() { int a,b,c; printf("输入行数:"); scanf("%d",&a); for(b=0;b<a;b++) { printf("\n"); for(c=0;c<b;c++) printf("*"); } printf("\n"); } 也是看书上的例子,然后回味了半天才有点那么点意思,

却不会编下列图形了, ********* ******** ******* ****** ***** **** *** ** *

我的思路是这样的: #include <stdio.h> void main() { int a,b,c; a=0; //初始化a; printf("请输入行数:",a); scanf("&d",&a);←有错应该:%d for(b=a;b>0;b--)//每行*的个数等于输入的行数,然后自减, 最后一行等于1个*号,不知道是否可以这样理解。 { printf("\n");//循环换行 for(c=b;c>0;c--) //这里有点理解不了 ←这边打印的是每一列的符号 { printf("*"); } } }

晕,既然成功了。我试了好半天,但是还有有点想不通。请大虾讲解一下思路

应该这样理解b表示的是行数,c表示的是列数,b控制的是打印换行符"\n"和对列数c的赋值,c才是控制打印符号"*"的个数。

[此贴子已经被作者于2005-5-15 17:02:10编辑过]


----------------解决方案--------------------------------------------------------
用得了那么麻烦吗
----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
  相关解决方案