...我不懂为什么2*n-2*i而不是2*n-1,这样上半段不是对称的!!c语言...
发布网友
发布时间:2024-10-07 04:08
我来回答
共2个回答
热心网友
时间:2024-11-22 05:26
首先要说那个为什么2*n-2*i而不是2*n-i的问题,注意这里:
printf(" ");
printf("* ");
第一个是输出一个空格,第二个是输出一个星号加一个空格,所以要减2*i而不是i。
另外,你第三个大括号前面少了个else吧……
就是叹号那里:
for(j=1;j<=2*i-1;j++) printf("* ");
printf("\n");
}
!!!!!!!!
{
for(j=1; ;j++) printf(" ");
最后是那三个空,
第一个是判断,括号里面应该填的是i<=n/2
第二和第三个是控制变量,填的和前面if括号里面的差不多,我这没安装tc、vc,没办法一个个实验,你自己试一下就出来了。
看你的提问,应该是二级c语言的上机题吧,其实二级c很好考的,不用担心,只要你二级c期末考试能靠自己水平过,机试题很简单,主要是笔试计算机基础部分容易挂,那部分注意背一下就好了,最后祝你二级考过!另外,求采纳啊!!!!!!!
热心网友
时间:2024-11-22 05:28
我加了,不过越看越别扭,输入单数没事,输入双数就有点不舒服了
#include<stdio.h>
void main()
{
int i,j,n;
printf("请输入需打印图形的行数:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i<=n/2 )
{
for(j=1;j<=2*n-2*i;j++) printf(" ");
for(j=1;j<=2*i-1;j++) printf("* ");
printf("\n");
}
else
{
for(j=1;j<2*i-1 ;j++) printf(" ");
for(j=1;j<=2*n-2*i+1 ;j++) printf("* ");
printf("\n");
}
}
}