日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

团体程序设计天梯赛-练习集 L1-002 打印沙漏

發(fā)布時(shí)間:2024/4/18 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 团体程序设计天梯赛-练习集 L1-002 打印沙漏 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本題要求你寫個(gè)程序把給定的符號打印成沙漏的形狀。例如給定17個(gè)“*”,要求按下列格式打印

************ *****

所謂“沙漏形狀”,是指每行輸出奇數(shù)個(gè)符號;各行符號中心對齊;相鄰兩行符號數(shù)差2;符號數(shù)先從大到小順序遞減到1,再從小到大順序遞增;首尾符號數(shù)相等。

給定任意N個(gè)符號,不一定能正好組成一個(gè)沙漏。要求打印出的沙漏能用掉盡可能多的符號。

輸入格式:

輸入在一行給出1個(gè)正整數(shù)N(≤1000)和一個(gè)符號,中間以空格分隔。

輸出格式:

首先打印出由給定符號組成的最大的沙漏形狀,最后在一行中輸出剩下沒用掉的符號數(shù)。

輸入樣例:

19 *

結(jié)尾無空行

輸出樣例:

************ ***** 2

結(jié)尾無空行

答案:

#include<stdio.h>
void space (int n);
void symbol(int n,char a) ;
?
int main (){
?? ?int N, row=1,sum=0,cnt;
?? ?char a;
?? ?scanf("%d %c",&N,&a);
?? ?
?? ?while (1){
?? ??? ?if(row==1){
?? ??? ??? ?sum+=1;
?? ??? ?} else if(row>=2){
?? ??? ??? ?sum+= 2*(2*row-1);
?? ??? ?}
?? ??? ?if(sum>N) {
?? ??? ??? ?break;
?? ??? ?}?
?? ??? ?// printf("row=%d sum=%d\n",row,sum);
?? ??? ?row++ ?;
?? ??? ?
?? ?}
?? ?sum-=(2*row-1)*2;
?? ?row--;
?? ?
?? ?//printf("sum=%d\n",sum) ;
?? ?
?? ?for ( cnt=row;cnt>0;cnt--) {
?? ??? ?space(row-cnt);
?? ??? ?symbol(cnt,a);
?? ??? ?if(cnt!=1){
?? ??? ??? ?printf("\n") ;
?? ??? ?}?
?? ?} ??
?? ?printf("\n");
?? ?
?? ?for(cnt=2;cnt<=row;cnt++){
?? ??? ?space(row-cnt) ;
?? ??? ?symbol(cnt,a);
?? ??? ?if(cnt<row){
?? ??? ??? ?printf("\n");
?? ??? ?}
? ? ? ? if(cnt==row){

printf("\n"); ? ? ? ?}
?? ?} ?
?? ?
?? ??
?? ?printf("%d",N-sum) ;?
?? ?
?? ?return 0;
}

void space (int n) {
?? ?int i;
?? ?for(i=0;i<n;i++){
?? ??? ?printf(" ");
?? ?}
}

void symbol(int n,char a){
?? ?int i;
?? ?for(i=0;i<2*n-1;i++){
?? ??? ?printf("%c",a);
?? ?}
}

與50位技術(shù)專家面對面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的团体程序设计天梯赛-练习集 L1-002 打印沙漏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。