这个程序后半部分的“空格”为什么是对齐的?解决方案
这个程序后半部分的“空格”为什么是对齐的?
我写的这个程序,目的是使之输出字母菱形,行数是通过输入数字确定的,
正确图案应该是这样的:
A
ABC
ABCDE
ABCDEFG
ABCDE
ABC
A
程序如下:
#include <stdio.h>
void main()
{
int a,b,c,d,n; //定义行数,空格数,每行个数,字符值。
printf( "请输入行数: ");
scanf( "%d ",&n);
for (a=1;a <=n;a++)
{
for (b=1;b <=n-a;b++)
printf( " ");
d=65;
for (c=1;c <=a*2-1;c++)
{
printf( "%c ",d);
d++;
}
printf( "\n ");
}
//前半部分,无错;
for (a=1;a <=n-1;a++)
{
for (b=1;b <=a;b++);
printf( " ");
d=65;
for (c=1;c <=(n*2-1)-2*a;c++)
{
printf( "%c ",d);
d++;
}
printf( "\n ");
}
}
后半部分输出的空格,全是对齐的,成了这样:
……
ABCDE
ABC
A
这是怎么回事啊?
------解决方案--------------------
for (b=1;b <=a;b++);
_____________________________
for (b=1;b <=a;b++)
我写的这个程序,目的是使之输出字母菱形,行数是通过输入数字确定的,
正确图案应该是这样的:
A
ABC
ABCDE
ABCDEFG
ABCDE
ABC
A
程序如下:
#include <stdio.h>
void main()
{
int a,b,c,d,n; //定义行数,空格数,每行个数,字符值。
printf( "请输入行数: ");
scanf( "%d ",&n);
for (a=1;a <=n;a++)
{
for (b=1;b <=n-a;b++)
printf( " ");
d=65;
for (c=1;c <=a*2-1;c++)
{
printf( "%c ",d);
d++;
}
printf( "\n ");
}
//前半部分,无错;
for (a=1;a <=n-1;a++)
{
for (b=1;b <=a;b++);
printf( " ");
d=65;
for (c=1;c <=(n*2-1)-2*a;c++)
{
printf( "%c ",d);
d++;
}
printf( "\n ");
}
}
后半部分输出的空格,全是对齐的,成了这样:
……
ABCDE
ABC
A
这是怎么回事啊?
------解决方案--------------------
for (b=1;b <=a;b++);
_____________________________
for (b=1;b <=a;b++)