编程题 使用双层for循环打印下面的图形
编程题 使用双层for循环打印下面的图形
* * * *
* * * *
* * * * 答案如下 但恕本人愚昧 ,实在看不懂(看了一整天)请各位加一下说明。。
main( )
{ inti,j;
for(i=0,j<=2;i++)
{ for(i=0;j<=i;j++)printf("空格符号")
for(j=o;j<=3;j++)printf("*")
}
printf("\n")
}
i和j各指什么?该图形有没有使用坐标轴?如果使用了,请高手画一下。。
问题点数:70、回复次数:30Top
1 楼w1425()回复于 2006-06-19 14:14:43 得分 0
注:该循环使用了for循环的嵌套Top
2 楼yuyuan830705()回复于 2006-06-19 14:22:14 得分 0
楼主提供程序是不对的。不信你运行一下。Top
3 楼zez(思恩 闭关练功ing...)回复于 2006-06-19 14:24:10 得分 0
晕...
谁喜欢分给他解释一下...
请楼主先了解了解c语言最基本的知识再问问题比较好....
* * * *
* * * *
* * * *
这玩意根本不是图形,只是个 * 和 空格 和回车 组成的字符串..ok?Top
4 楼tailzhou(尾巴)回复于 2006-06-19 14:25:43 得分 0
i是行,j是列
main( )
{ inti,j;
for(i=0,j<=2;i++)
{ for(i=0;j<=i;j++)printf(" ") //打印每行前面的空格数
for(j=o;j<=3;j++)printf("*") //打印3个'*'
}
printf("\n") //换到下一行
}Top
5 楼laiwusheng(风清扬)回复于 2006-06-19 14:27:09 得分 0
转新手乐园Top
6 楼tailzhou(尾巴)回复于 2006-06-19 14:27:57 得分 0
楼主提供程序是不对的。不信你运行一下。
lz的程序估计是手敲的,所以漏了很多空格符,好象有个0还写成了oTop
7 楼mysear(hello buddy)回复于 2006-06-19 14:36:51 得分 0
太太太晕了!
就是看不懂Top
8 楼mysear(hello buddy)回复于 2006-06-19 14:40:39 得分 0
void main()
{
int i,j;
for(i=0;i<=2;i++)//控制打印的行数
{
for(j=0;j<=i;j++)//根据行数,控制打印的空格数
printf(" ");
for(j=0;j<=3;j++)//控制每行打印4个*
printf("*");
printf("\n");
}
}
这样好看些Top
9 楼yuyuan830705()回复于 2006-06-19 14:41:08 得分 0
而且即使修正了,还是死循环。一定是楼主太粗心了~~~Top
10 楼w1425()回复于 2006-06-19 14:58:56 得分 0
不会错吧
tailzhou(尾巴) :(我是把书上抄过来的
main( )
{ inti,j;
for(i=0,j<=2;i++)
{ for(i=0;j<=i;j++)printf(" ") //打印每行前面的空格数
for(j=o;j<=3;j++)printf("*") //打印3个'*'
}
printf("\n") //换到下一行
}
这是不是对的?Top
11 楼yuyuan830705()回复于 2006-06-19 15:08:09 得分 0
连分号都没有~~~~而且真的是 for(i=0,j<=2;i++) 不是 for(i=0,i<=2;i++) ??Top
12 楼fadom(小车快跑)回复于 2006-06-19 15:41:02 得分 0
#include <string.h>
#include <stdio.h>
void main( )
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<i;j++)printf(" ");
for(j=0;j<4;j++)printf("*");
printf("\n");
}
}
搂主的程序应该是这样i控制行数,j控制空格的列数;for(j=0;j<4;j++)printf("*");这里的j主要是用来输出4个*号,只是为了简便所以用了j,要是想更容易看些的话就改为
for(int k=0;j<4;j++)printf("*");也可以。
希望搂主能看懂,答完拿分。Top
13 楼fadom(小车快跑)回复于 2006-06-19 15:51:32 得分 0
#include <stdio.h>
void main( )
{
int i,j;
for(i=0;i=<2;i++)
{
for(j=0;j<i;j++)printf(" ");
for(j=0;j=<3;j++)printf("*");
printf("\n");
}
}
应该是这样的,
这句printf("\n");应该放在i控制的for循环里面,这样才能达到换行的目的,
搂主的原程序中有的i和j抄错了,英文o和数字0有点不小心,还有就是逗号和分号也有些错误。
建议楼主在学习过程中能够多试着自己运行调式程序,这样就可以很快发现问题和错误了,也更容易理解程序,有助于更快的进步,呵呵。Top
14 楼w1425()回复于 2006-06-19 15:59:41 得分 0
fadom(小车快跑)谢谢你
我组要的疑惑是第2个for循环for(j=0;j<i;j++)printf(" ");是怎么控制空格的打印的??????Top
15 楼tailzhou(尾巴)回复于 2006-06-19 16:15:58 得分 0
第一行的时候:
i=0,相当于for(j=0;j<0;j++)printf(" "); 不打印空格;
第二行的时候:
i=1,相当于for(j=0;j<1;j++)printf(" "); 打印1个空格;
第三行的时候:
i=2,相当于for(j=0;j<2;j++)printf(" "); 打印2个空格;
不会错吧
tailzhou(尾巴) :(我是把书上抄过来的
main( )
{ inti,j;
for(i=0,j<=2;i++)
{ for(i=0;j<=i;j++)printf(" ") //打印每行前面的空格数
for(j=o;j<=3;j++)printf("*") //打印3个'*'
}
printf("\n") //换到下一行
}
这是不是对的?
明显for(j=o;j<=3;j++)printf("*") 里面的j=o是字母o而不是0,并且大多数的语句都没用";"结尾Top
16 楼w1425()回复于 2006-06-19 16:22:29 得分 0
谢谢tailzhou(尾巴)
但是*和*之间的两个空格怎么打印呢????
Top
17 楼w1425()回复于 2006-06-19 16:24:52 得分 0
*和*之间也有两个空格
怎么打印???Top
18 楼w1425()回复于 2006-06-19 16:28:05 得分 0
谢谢tailzhou(尾巴)
但是*和*之间的两个空格怎么打印呢????Top
19 楼mysear(hello buddy)回复于 2006-06-19 16:28:44 得分 0
*和*之间的空格这样打印printf("*++");把+换成键盘上最大的键位(空格),需要几个就敲几下Top
20 楼tailzhou(尾巴)回复于 2006-06-19 16:33:41 得分 0
如果*和*之间也有两个空格
那么printf("*") 改成printf("* ");
完整点的:
main( )
{ inti,j; ==> int i,j; //int与i之间缺空格
for(i=0,j<=2;i++) ==>for(i=0;j<=2;i++) //i=0后应该是分号
{ for(i=0;j<=i;j++)printf("空格符号") ==for(i=0;j<=i;j++)printf(" "); //语句缺结束符‘;’
for(j=o;j<=3;j++)printf("*") ==>for(j=0;j<=3;j++) printf("* "); //o应该是0,语句缺结束符‘;’
}
printf("\n") ==>printf("\n"); //语句缺结束符‘;’
}
Top
21 楼tailzhou(尾巴)回复于 2006-06-19 16:36:07 得分 0
前一段那个帖子是你发的么?
那里面的回复基本都是正确的。Top
22 楼wd1566(冰原的风)回复于 2006-06-20 16:17:06 得分 0
up!~Top
23 楼xiezengguang(增广贤文)回复于 2006-06-20 16:54:12 得分 0
太幼稚的问题Top
24 楼systemx(-操!老子从不讲脏话的!阿弥陀佛!-)回复于 2006-06-20 18:06:24 得分 0
mysear() ( ) 信誉:99 2006-6-19 14:40:40 得分: 0
void main()
{
int i,j;
for(i=0;i<=2;i++)//控制打印的行数
{
for(j=0;j<=i;j++)//根据行数,控制打印的空格数
printf(" ");
for(j=0;j<=3;j++)//控制每行打印4个*
printf("*");
printf("\n");
}
}
这样好看些
——————————————————————
做了下缩进处理
Top
25 楼lixich()回复于 2006-06-20 23:04:52 得分 0
做过缩进处理的程序,看起来就是舒服!
毕竟都是人在看程序!Top
26 楼guochangchun21(郭长春)回复于 2006-06-20 23:47:14 得分 0
自己敲一下代码就完事了 就知道对不对了Top
27 楼w1425()回复于 2006-06-21 13:27:37 得分 0
*和*之间也有两个空格 那么根据tailzhou(尾巴) 的说法for(j=0;j<=3;j++)//控制每行打印4个*
printf("*");应该是for(j=0;j<=3;j++)printf("* ");和书上的不一样的
(就不对的了)怎么解释呢?
Top
28 楼w1425()回复于 2006-06-21 13:42:10 得分 0
也许是这样的
main( )
{ int i,j;
for(i=0;i<=2;i++)/*控制行的输出*/
{ for(j=0;j<=i;j++)printf(" ");/*控制空格的个数*/
for(j=0;j<=3;j++)printf("*");/*控制没行4个*/
printf("\n");/*输出完一行换行*/
}
}
就“for(j=0;j<=3;j++)printf("*");/*控制没行4个*/”这一行有点问题 按这样输出那*和*之间也就没有两个空格的了。??图形就是
****
****
****很明显与原图形不一致了 是不是本人太笨就是不明白*和*之间的两个空格是怎么控制打印出来的
帮帮我!!!!
Top
29 楼mysear(hello buddy)回复于 2006-06-21 17:53:14 得分 0
晕死了
程序如下:
void main( )
{
int i,j;
for(i=0;i<=2;i++)/*控制行的输出*/
{
for(j=0;j<i;j++)/*控制空格的个数*/
printf(" ");
for(j=0;j<=3;j++)/*控制没行4个*/
printf("* ");
printf("\n");/*输出完一行换行*/
}
}
输出结果如下:
* * * *
* * * *
* * * *
这次是不是一模一样了!!!Top
30 楼cxjddd(又是花开时)回复于 2006-06-21 18:19:41 得分 0
// 空格被转换成中文字符了。。。
void print_graph (int m, int n)
{
int i;
for (i = 0; i < m; ++i)
{
const char* sp = "";
int j;
for (j = 0; j < n; ++j, sp = " ")
printf ("%s*", sp);
printf ("\n");
}
}Top




