打印沙漏及线性表的顺序存储结构
1.线性表顺序存储代码
https://github.com/BodhiXing/Data_Structure
2. 打印沙漏
https://pta.patest.cn/pta/test/17/exam/4/question/260
设沙漏上半部分的行数为n,则总数为。沙漏的上半部分的空格递增,下半部分的空格递减。
1 #include <stdio.h> 2 3 int fun(int n,char ch) 4 { 5 int i,k,j,ret=0; 6 long sum=0; 7 for(i=1;i*i*2-1<=n;i++) 8 ; 9 sum = (i-1)*(i-1)*2-1; //总数 10 ret = n-sum; 11 // printf("%ld\n",sum); 12 13 /*打印沙漏的上半部分*/ 14 n = i-1; 15 for(i=n;i>0;i--) 16 { 17 for(j=0;j<n-i;j++) 18 printf(" "); //空格 19 for(k=j;k<2*i-1+j;k++) 20 printf("%c",ch); 21 printf("\n"); 22 } 23 24 /*打印沙漏的下半部分*/ 25 for(i=2;i<=n;i++) 26 { 27 for(j=0;j<n-i;j++) 28 printf(" "); 29 for(k=j;k<2*i-1+j;k++) 30 printf("%c",ch); 31 printf("\n"); 32 } 33 return ret; 34 35 } 36 int main() 37 { 38 int n,l; 39 char ch; 40 scanf("%d %c",&n,&ch); 41 42 l = fun(n,ch); 43 printf("%d",l); 44 }