打印沙漏
#include<stdio.h>
int main()
{
int n,i,j,k,sum,a;
char ch;
sum=1;
scanf("%d",&n);
scanf("%c",&ch);
for(i=1;sum<=n;i++)
{
sum+=2*(2*(i+1)-1);
}
i=i-1;
for(j=0;j<i;j++)
{
for(k=0;k<j;k++);
{
printf(" ");
}
for(a=0;a<=2*(i-j)-1;a++)
{
printf("%c",ch);
}
printf("\n");
}
for(j=2;j<=i;j++)
{
for(k=0;k<i-j;k++);
{
printf(" ");
}
for(a=0;a<=2*j-1;a++)
{
printf("%c",ch);
}
printf("\n");
}
printf("%d",n-(sum-2*(2*(i+1)-1);
int main()
{
int n,i,j,k,sum,a;
char ch;
sum=1;
scanf("%d",&n);
scanf("%c",&ch);
for(i=1;sum<=n;i++)
{
sum+=2*(2*(i+1)-1);
}
i=i-1;
for(j=0;j<i;j++)
{
for(k=0;k<j;k++);
{
printf(" ");
}
for(a=0;a<=2*(i-j)-1;a++)
{
printf("%c",ch);
}
printf("\n");
}
for(j=2;j<=i;j++)
{
for(k=0;k<i-j;k++);
{
printf(" ");
}
for(a=0;a<=2*j-1;a++)
{
printf("%c",ch);
}
printf("\n");
}
printf("%d",n-(sum-2*(2*(i+1)-1);
return 0;
}
设计思路
}
设计思路
本题调试过程碰到问题及解决办法
注意1:打印沙漏的上半部分时,无思路。
解决办法:在百度上参考参考别人的,从中获取灵感,上半部分打印不是特别难。
注意2:打印沙漏下半部分时,不知道怎么打印空格
解决办法:请教了那些写完的同学,下半部分打印从符号着手,因为符号可以按等差数列打印,再推出j=2,从而一次往下推。