标题:[求助]为什么相同的FOR语句绿色的不能表达?蓝色的在第二次循环后空格数减少 ...
只看楼主
yuzhiyan
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-30
 问题点数:0 回复次数:3 
[求助]为什么相同的FOR语句绿色的不能表达?蓝色的在第二次循环后空格数减少?

#include "stdio.h"
#include "conio.h"

main()
{
int n,i,j,p,q,m;
scanf("%d",&n);
if(n%2==0)
{for(i=1;i<6;i++)
printf(" ");
for(i=1;i<n+1;i++)
printf("*");
printf("\n");
for(j=2;j<n/2+1;j++)
{for(i=1;i<6;i++)
printf(" ");
for(p=1;p<(n/2)-(j-1)+1;p++)
printf("*");
for(q=1;q<(2+(j-2)*2)+1;q++)
printf(" ");
for(m=1;m<(n/2)-(j-1)+1;m++)
printf("*");printf("\n");
}
}
else{for(i=1;i<6;i++)
printf(" ");
for(i=1;i<n+1;i++)
printf("*");
printf("\n");
for(j=2;j<(n-3)/2+1+1;j++)
{for(i=1;i<6;i++)
printf(" ");
for(p=1;p<(n-3)/2+2-j+1;p++)
printf("*");
for(q=1;q<2*j;q++)
printf(" ");
for(m=1;m<(n-3)/2+2-j+1;m++)
printf("*");printf("\n");
}
}getch();
}



#include "stdio.h"
main()
{ int n,m,b,i,j,a,k;
scanf("%d,%d",&n,&m);
for(i=1;i<m;i++)
printf(" ");
for(i=1;i<=n;i++)
printf("*");
printf("\n");

b=(n+1)/2;
if(n%2==0)
{ for(i=1;i<m;i++)
printf(" ");
for(i=1;i<=n;i++)
printf("*");
printf("\n");
for(j=2;j<b+1;j++)
{ for(i=1;i<m;i++)
printf(" ");
for(a=1;a<b-j+1;a++)
printf("*");
for(m=1;m<(j-1)*2+1;m++)
printf(" ");
for(k=1;k<b-j+1;k++)
printf("*");
printf("\n");
}
}
else
{ for(i=1;i<m;i++)
printf(" ");
for(i=1;i<=n;i++)
printf("*");
printf("\n");
for(j=2;j<b;j++)
{ for(i=1;i<m;i++)
printf(" ");

for(a=1;a<b-j+1;a++)
printf("*");
for(m=1;m<(j-1)*2;m++)
printf(" ");
for(k=1;k<b-j+1;k++)
printf("*");
printf("\n");
}
}

getch();
}
请帮助!!!!!!!!!1

[此贴子已经被作者于2007-11-8 19:08:22编辑过]

搜索更多相关主题的帖子: FOR 空格 语句 蓝色 绿色 
2007-11-08 18:46
gbgame
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-10-27
得分:0 
先整理一下:
#include "stdio.h"
main()
{
int n,m,b,i,j,a,k;
scanf("%d,%d",&n,&m);
for(i=1;i<m;i++)
printf(" ");
for(i=1;i<=n;i++)
printf("*");
printf("\n");
b=(n+1)/2;
if(n%2==0)
{
for(i=1;i<m;i++)
printf(" ");
for(i=1;i<=n;i++)
printf("*");
printf("\n");
for(j=2;j<b+1;j++)
{
for(i=1;i<m;i++)
printf(" ");
for(a=1;a<b-j+1;a++)
printf("*");
for(m=1;m<(j-1)*2+1;m++)
printf(" ");
for(k=1;k<b-j+1;k++)
printf("*");
printf("\n");
}
}
else
{
for(i=1;i<m;i++)
printf(" ");
for(i=1;i<=n;i++)
printf("*");
printf("\n");
for(j=2;j<b;j++)
{
for(i=1;i<m;i++)
printf(" ");
for(a=1;a<b-j+1;a++)
printf("*");
for(m=1;m<(j-1)*2;m++)
printf(" ");
for(k=1;k<b-j+1;k++)
printf("*");
printf("\n");
}
}
getch();
}
问题就在于m不能这么用,循环一次就把最初读取的值丢了,请换个字母来做循环就好了,比如a

[此贴子已经被作者于2007-11-8 20:07:48编辑过]

2007-11-08 19:33
yuzhiyan
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-30
得分:0 

谢谢 !!知道啊!!!

2007-11-14 17:46
devil_v6
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2007-10-29
得分:0 
啊, 这么多,等我看看再说

2007-11-14 18:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-184599-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.161280 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved