寒假作业一编程总结
7-1?打印沙漏?(20 分)
1、實驗代碼:
int main()
{
int a,i,n=3,n1=0,sum,t=1,k=1;
char b;
scanf("%d %c",&a,&b);
if(a<=6)
{
printf("%c\n",b);
printf("%d",a-1);
}
else
{
while(1)
{
if(a>=n1+1)
{
n1=n1+2n;
n+=2;
}
else
break;
}
n1-=2(n-2);
n-=4;
for(k=1;k<=n/2+1;k++)
{
for(int g=2;g<=k;g++)printf(" ");
for(int t=0;t<=n-2k+1;t++){printf("%c",b);}
printf("\n");
}
for(k=n/2;k>0;k--)
{
for(int g=k-1;g>0;g--)printf(" ");
for(int t=0;t<=n-2k+1;t++)printf("%c",b);
printf("\n");
}
printf("%d",a-n1-1);}
return 0;
}
3、設計思路:
本題要求你寫個程序把給定的符號打印成沙漏的形狀。例如給定17個“*”,要求按下列格式打印
************ *****所謂“沙漏形狀”,是指每行輸出奇數個符號;各行符號中心對齊;相鄰兩行符號數差2;符號數先從大到小順序遞減到1,再從小到大順序遞增;首尾符號數相等。
給定任意N個符號,不一定能正好組成一個沙漏。要求打印出的沙漏能用掉盡可能多的符號。
輸入格式:
輸入在一行給出1個正整數N(≤1000)和一個符號,中間以空格分隔。
輸出格式:
首先打印出由給定符號組成的最大的沙漏形狀,最后在一行中輸出剩下沒用掉的符號數。
輸入樣例:
19 *輸出樣例:
************ ***** 21、實驗代碼:
int main()
{
int a,i,n=3,n1=0,sum,t=1,k=1;
char b;
scanf("%d %c",&a,&b);
if(a<=6)
{
printf("%c\n",b);
printf("%d",a-1);
}
else
{
while(1)
{
if(a>=n1+1)
{
n1=n1+2n;
n+=2;
}
else
break;
}
n1-=2(n-2);
n-=4;
for(k=1;k<=n/2+1;k++)
{
for(int g=2;g<=k;g++)printf(" ");
for(int t=0;t<=n-2k+1;t++){printf("%c",b);}
printf("\n");
}
for(k=n/2;k>0;k--)
{
for(int g=k-1;g>0;g--)printf(" ");
for(int t=0;t<=n-2k+1;t++)printf("%c",b);
printf("\n");
}
printf("%d",a-n1-1);}
return 0;
}
3、設計思路:
第一步:你首先要定義自己需要的變量,
第二步:你需要觀察圖形,發現是對稱圖形,并且要打印漏斗最少需要七個三行;
第三步:你要確定打印漏斗所需要的符號數以及你給定符號能打印多少,還剩多少;
第四步:打印漏斗的上部分,和進行換行,同時進行下部分圖形的打印;
3、遇到的問題:
剛開始遇到判斷圖形需要的符號和符號能打印多大圖形不能準確判斷,其次就是最小的情況沒有考慮,最大情況沒有考慮,對漏斗形狀的打印也不是很熟練;
?轉載于:https://www.cnblogs.com/caoe666/p/10412327.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: Fescar 全局锁介绍
- 下一篇: Web 安全