2018秋寒假作业4——PTA编辑总结1

#include<stdio.h>
#include<math.h>
int main(void)
{
int n,i,j,p,m,ge,N,k; char op;
while(){
scanf("%d %c",&N,&op);
if(N>&&N<=)
break;
}
k=N-;
for(i=;k>=*i;i+=){
k=k-*i;
}
i-=;
n=i;
for(j=;i>=;i-=,j++){
for(p=;p<j;p++)
printf(" ");
for(p=;p<i;p++)
printf("%c",op);
printf("\n");
}
ge=j-;
for(m=;m<=n;m+=,ge--){
for(p=;p<ge;p++)
printf(" ");
for(p=;p<m;p++)
printf("%c",op);
printf("\n");
}
printf("%d",k);
return ;
}

1.首先审题,需要一个沙漏形的形状,分解成两个三角形,由中间分开。比如需要19个*,由中间开始分解,首先使用while循环结构和一个for循环了解到沙漏的长度和宽度,设定p<i的然后由此得出for循环,如果距离小于输入的i则会执行p++,继续向下递增。

由此得出了上面的三角形的代码,倒三角同理。

2018秋寒假作业4——PTA编辑总结1

其中得到上面的公式,但由于在for循环语句后面加入了一个“;”,虽然dev-c++上显示无错误,但是得出来的结果一直是错误的。

2018秋寒假作业4——PTA编辑总结1

但是经过反复的检查,修改过后最后得出正确结果

上一篇:Ajax csrf跨站请求伪造


下一篇:2018秋寒假作业5—PTA编程总结2