C語言圖形輸出習題_第1頁
C語言圖形輸出習題_第2頁
C語言圖形輸出習題_第3頁
C語言圖形輸出習題_第4頁
C語言圖形輸出習題_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

...wd......wd......wd...【4.4】輸入n值,輸出如以以下列圖矩形?!?.5】輸入n值,輸出如以以下列圖平行四邊形?!?.6】輸入n值,輸出如以以下列圖高為n的等腰三角形?!?.7】輸入n值,輸出如以以下列圖高為n的等腰三角形。【4.8】輸入n值,輸出如以以下列圖高和上底均為n的等腰梯形?!?.9】輸入n值,輸出如以以下列圖高和上底均為n的等腰空心梯形?!?.10】輸入n值,輸出如以以下列圖邊長為n的空心正六邊型?!?.11】輸入n值,輸出如以以下列圖圖形。【4.12】輸入n值,輸出如以以下列圖圖形?!?.13】輸入n值,輸出如以以下列圖圖形?!?.14】輸入n值,輸出如以以下列圖圖形?!?.15】輸入n值,輸出如以以下列圖圖形?!?.16】輸入n值,輸出如以以下列圖圖形?!怖秊閚=6時〕

【4.17】編寫程序,輸出如以以下列圖sin(x)函數(shù)0到2π的圖形。

【4.18】編寫程序,在屏幕上輸出一個由*號圍成的空心圓。

【4.19】編寫程序,在屏幕上繪制如圖余弦曲線和直線。假設(shè)屏幕的橫向為x軸,縱向為y軸,在屏幕上顯示0~360度的cos(x)曲線與直線x=f(y)=45*(y-1)+31的迭加圖形。其中cos圖形用"*"表示,f(y)用"+"表示,在兩個圖形的交點處那么用f(y)圖形的符號?!?.20】編寫程序,輸出如以以下列圖高度為n的圖形?!?.21】編寫程序,輸出如以以下列圖高度為n的圖形。

【4.22】輸入n值,輸出如以以下列圖圖形。

【4.23】輸入n值,輸出如以以下列圖的n×n(n<10)階螺旋方陣。

12345

161718196

152425207

142322218

131211109

圖4.19n=5時的螺旋方陣

【4.24】輸入n值,輸出如以以下列圖回型方陣。【4.25】輸出如以以下列圖的數(shù)字金字塔【4.26】輸入n值,輸出如以以下列圖圖形?!?.27】輸入頂行字符和圖形的高,輸出如以以下列圖圖形?!?.28】輸入首字符和高后,輸出如以以下列圖回型方陣。

AAAAAABBBAABCBAABBBA

AAAAA圖4.24首字符為'A'、高為5的方陣

【4.29】輸入中心字符和高后,輸出如以以下列圖回型方陣。

XXXXXXYYYXXYZYXXYYYY

XXXXX

圖4.25中心字符為'Z'、高為5的方陣

【4.30】編寫程序,輸出如以以下列圖上三角形式的乘法九九表。【4.31】編寫程序,輸出如以以下列圖下三角乘法九九表?!?.4】分析:打印此圖形用兩重循環(huán)實現(xiàn)。圖形要重復n行,故采用循環(huán)構(gòu)造實現(xiàn)循環(huán)n次,循環(huán)體內(nèi)部打印一行'*'號,把上述思路表示為:for(i=1;i<=n;i++)打印一行'*'號;每行有n個'*'號,再采用循環(huán)構(gòu)造實現(xiàn)n次循環(huán),循環(huán)內(nèi)部用格式輸出語句打印一個'*'號,即:for(j=1;j<=n;j++)printf("*");按照上述思路,實現(xiàn)打印矩形。參考答案:main(){inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n;j++)printf("*");printf("\n");}}【4.5】分析:此圖形和上題的區(qū)別在于在每一行先要打印空格,然后再打印n個'*'號,在上題第一層循環(huán)體內(nèi)打印'*'號的循環(huán)前面增加一個循環(huán)打印空格。每行空格的個數(shù)是逐行減少的,由于第一層循環(huán)的控制變量i是逐行增1,所以用一個固定值的數(shù)減去i就可實現(xiàn)對空格個數(shù)的控制,在此題中固定值可使用變量n。參考答案:main(){inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf("");for(j=1;j<=n;j++)printf("*");printf("\n");}}【4.6】分析:此題和上題的區(qū)別在于每行'*'的數(shù)量逐行減少,可以使用上題控制空格個數(shù)的思路來控制'*'號的個數(shù),請注意每行'*'的個數(shù)都是奇數(shù)。參考答案:main(){inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf("");for(j=1;j<=2*i-1;j++)printf("*");printf("\n");}}【4.7】分析:此題圖形是第3題圖形的垂直反轉(zhuǎn),在編程上我們可以變換一個思路。對于圖形中的第i行〔1≤i≤n〕,共需要輸出2n-i個字符,其中前面的i-1個字符為空格,后面的字符為'*'號。按照這一思路可以編寫出如下程序。參考答案:main(){inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++)/*重復輸出圖形的n行*/{for(j=1;j<=2*n-i;j++)/*重復輸出圖形一行中的每個字符*/if(j<=i-1)printf("");/*輸出前面的空格*/elseprintf("*");/*輸出后面的*號*/printf("\n");}}【4.8】分析:此題和第3題的區(qū)別僅是每行的'*'個數(shù)增加n-1個。參考答案:main(){inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf("");for(j=1;j<=2*i-1+(n-1);j++)printf("*");printf("\n");}}【4.9】分析:對于空心圖形,我們可以在上題的根基上,對于打印'*'號的循環(huán)進展修改,僅在循環(huán)開場值(j=1)和循環(huán)完畢值(j=2*(i-1)+n)時打印'*'號,其它位置都打印空格。另一種思路是將每行打印的空格和'*'的兩個循環(huán)合為一體考慮,在判斷出需要打印'*'的兩個位置及第一行和最后一行相應(yīng)位置外,其余位置都打印空格。參考答案:main(){inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=2*n+i-3;j++)if(j==n-i+1||j>n-i+1&&(i==1||i==n))printf("*");elseprintf("");printf("*\n");}}【4.10】分析:此圖形可以理解為兩個空心梯形反向連接而成,因此可以利用上題的思路進展輸出。參考答案:main(){inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++)/*輸出圖形的上半局部(含中心行)*/{for(j=1;j<=2*n-i-1;j++)if(j==i)printf("*");elseprintf("");printf("*\n");}for(i=1;i<n;i++)/*輸出圖形的下半局部〔不含中心行〕*/{for(j=1;j<=n+i;j++)if(j==n-i)printf("*");elseprintf("");printf("*\n");}}【4.11】分析:此題與上題的區(qū)別在于打印'*'號的位置不同,編程時要找出應(yīng)打印'*'號的位置和兩個循環(huán)變量i、j以及行數(shù)n的關(guān)系。參考答案:main(){inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++)/*輸出圖形的上半局部(含中心行)*/{for(j=1;j<=2*n-i;j++)if(j==n-i+1||j>n-i+1&&i==1)printf("*");elseprintf("");printf("*\n");}for(i=1;i<n;i++)/*輸出圖形的下半局部〔不含中心行〕*/{for(j=1;j<=3*(n-1)-i;j++)if(j==i+1||j>i+1&&i==n-1)printf("*");elseprintf("");printf("*\n");}}【4.12】參考答案:main(){inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n;j++)if(j==n-i+1||i==1||i==n)printf("*");elseprintf("");printf("\n");}}【4.13】參考答案:main(){inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++)/*輸出圖形的上半局部(含中心行)*/{for(j=1;j<=n-i;j++)if(j==1||j==n-i+1)printf("*");elseprintf("");printf("\n");}for(i=1;i<n;i++)/*輸出圖形的下半局部〔不含中心行〕*/{for(j=1;j<=i+1;j++)if(j==1||j==i+1)printf("*");elseprintf("");printf("\n");}}【4.14】參考答案:main(){inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n;j++)if(j==1||j==i||j==n)printf("*");elseprintf("");printf("\n");}}【4.15】參考答案:main(){inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n+i-1;j++)if(j>n-i)printf("*");elseprintf("");printf("\n");}for(i=1;i<n;i++){for(j=1;j<=2*n-i-1;j++)if(j>i)printf("*");elseprintf("");printf("\n");}}【4.16】參考答案:main(){inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n+i-2;j++)if(j==n-i+1)printf("*");elseprintf("");printf("*\n");}}【4.17】分析:首先對圖形進展設(shè)計,坐標的X軸和Y軸分別對應(yīng)屏幕的列和行,一個正弦函數(shù)的周期為0~360度,我們把一個步長定義為10度,打印時每換一行等于函數(shù)的自變量增加10度;屏幕的列寬為80,函數(shù)值為0對應(yīng)屏幕的第40列,sin(x)的值在-1~1,變換成列數(shù)為以0為中心的-30~30,對應(yīng)屏幕上第10~70列。設(shè)計程序時,控制換行的自變量i乘以10得到正弦函數(shù)的X值,調(diào)用庫函數(shù)sin()求出函數(shù)值再乘以30輸出的列寬,因為我們以屏幕的第40列為0點,故再加上40得到應(yīng)在屏幕上顯示的點。參考答案:#definePAI3.14159#include<math.h>main(){doublex;inty,i,yy;for(i=1;i<80;i++)/*打印圖形的第一行*/if(i==40)printf("*");/*i控制打印的列位置*/elseprintf("-");printf("\n");for(x=10.0;x<=360.0;x+=10.)/*從10度到360度*/{y=40+30*sin(x*PAI/180.0);/*計算對應(yīng)的列*/yy=40>y?40:y;/*下一行要打印的字符總數(shù)*/for(i=1;i<=yy;i++)/*控制輸出圖形中的一行*/{if(i==y)printf("*");/*i控制打印的列位置*/elseif(i==40)printf("|");/*打印中心的豎線*/elseprintf("");}printf("\n");}}【4.18】分析:首先設(shè)計屏幕圖形,如果預(yù)計圓形在屏幕上打印20行,所以定義圓的直徑就是20,半徑為10,圓的方程是X2×Y2=R2,因為圖形不是從中心開場打印而是從邊沿開場,所以Y從10變化到-10,根據(jù)方程求出X,對求得的X值再根據(jù)屏幕行寬進展必要的調(diào)整得到應(yīng)打印的屏幕位置。參考答案:#include<math.h>main(){doubley;intx,m;for(y=10;y>=-10;y--)/*圓的半徑為10*/{m=2.5*sqrt(100-y*y);/*計算行y對應(yīng)的列坐標m*/for(x=1;x<30-m;x++)printf("");/*輸出圓左側(cè)的空白*/printf("*");/*輸出圓的左側(cè)*/for(;x<30+m;x++)printf("");/*輸出圓的空心局部*/printf("*\n");/*輸出圓的右側(cè)*/}}【4.19】參考答案:#include<stdio.h>#include<math.h>main(){doubley;intx,m,n,yy;for(yy=0;yy<=20;yy++){y=0.1*yy;m=acos(1-y)*10;n=45*(y-1)+31;for(x=0;x<=62;x++)if(x==m&&x==n)printf("+");elseif(x==n)printf("+");elseif(x==m||x==62-m)printf("*");elseprintf("");printf("\n");}}【4.20】分析:編程的關(guān)鍵為兩點,一是使用控制輸出的行和列,這方面的內(nèi)容在前面已經(jīng)表達,另一點是輸出的數(shù)字和所在行、列關(guān)系。此題第一行輸出的數(shù)字恰好是列數(shù),從第二行起每行的數(shù)字均比上一行增n。參考答案:main(){inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n;j++)printf("%4d",(i-1)*n+j);printf("\n");}}【4.21】分析:此題的關(guān)鍵是找到輸出數(shù)字和行、列數(shù)的關(guān)系。審查圖形中每行中數(shù)字的關(guān)系發(fā)現(xiàn),右邊數(shù)字和前面數(shù)字之差逐次增1;同列數(shù)字依然是這樣的關(guān)系,編程的關(guān)鍵轉(zhuǎn)換為找到每一行左方的第一個數(shù)字,然后利用行和列的循環(huán)變量進展運算就可得到每個位置的數(shù)字。用ai,j此表示第i行第j列的數(shù)字,那么a11=1;由第i行第一列的數(shù)字推出第i+1行第一列的數(shù)字是ai+1,1=ai,1+i;同樣由第j列推出第j+1列的數(shù)字是ai,j+1=ai,j+i+j。另外只有當j<i時才輸出數(shù)字。參考答案:main(){inti,j,m,n,k=1;/*k是第一列元素的值*/printf("Pleaseenterm="");scanf("%d",&m);for(i=1;i<=m;i++){n=k;/*n第i行中第1個元素的值*/for(j=1;j<=m-i+1;j++){printf("%3d",n);n=n+i+j;/*計算同行下一個元素的值*/}printf("\n");k=k+i;/*計算下一行中第1個元素*/}}【4.22】參考答案:main(){inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n;j++)if(j<=i)printf("1");elseprintf("%3d",j-i+1);printf("\n");}}【4.23】分析:可用不同的方案解決此問題,為了開闊讀者的思路,這里給出了兩個參考答案,其中第二個答案是使用了遞歸方法。方案一:首先尋找數(shù)字輸出數(shù)字和行列的關(guān)系。每圈有四個邊,把每邊的最后一個數(shù)字算為下邊的開場,最外圈每邊數(shù)字個數(shù)是n-1個,以后每邊比外邊一邊少兩個數(shù)字。因為數(shù)字是一行一行輸出的,再分析每行數(shù)字的規(guī)律。實際沒有的數(shù)字有三種規(guī)律:位于對角線之間的數(shù)字是上半圖增一,下半圖減一。對角線左側(cè)的各列,右側(cè)比左側(cè)增加了一圈數(shù)字,例如數(shù)字39和它左側(cè)的22對比,數(shù)字39所在的圈每邊4個數(shù)字,左側(cè)22加上一圈16個數(shù)字在加1就是39。同理,對角線右側(cè)的各列,那么減少一圈的數(shù)字個數(shù)。根據(jù)以上分析,用兩個對角線將圖形分為四個區(qū)域,如以以下列圖所示,圖中黑斜體字為對角線上的數(shù)字。12345672425262728298234041424330922394849443110213847464532112037363534331219181716151413為表達方便我們稱四個區(qū)域為上、下、左、右區(qū)。設(shè)i、j為行列號,n為圖形的總行數(shù),那么滿足各區(qū)的范圍是,上區(qū):j>=i且j<=n-i+1;下區(qū):j<=i且j>=n-i+1;左區(qū):j<i且j<n-i+1;右區(qū):j>i且j>n-i+1。現(xiàn)在問題是,如果知道一行在不同區(qū)域開場第一個位置的數(shù)字,然后該區(qū)后續(xù)的數(shù)字就可利用前面分析的規(guī)律得到。對于右區(qū)開場各行第一個數(shù)字最易求出,為4*(n-1)-i+1。后續(xù)一個和同行前一個數(shù)字之差是4*[n-1-(j-1)*2]+1,其中方括號內(nèi)是每邊的數(shù)字個數(shù)。對角線上的數(shù)字是分區(qū)點,對角線上相臨數(shù)字仍然相差一圈數(shù)字個數(shù),讀者自行分析得到計算公式。右區(qū)開場的第一個數(shù)字可以從上區(qū)完畢時的數(shù)字按規(guī)律求出。下述程序用變量s保存分區(qū)對角線上的數(shù)字。參考答案一:main(){inti,j,k,n,s,m,t;printf("Pleaseentern:");scanf("%d",&n);for(i=1;i<=n;i++){s=(i<=(n+1)/2)?1:3*(n-(n-i)*2-1)+1;m=(i<=(n+1)/2)?i:n-i+1;/*m-1是外層圈數(shù)*/for(k=1;k<m;k++)s+=4*(n-2*k+1);for(j=1;j<=n;j++){if(j>=n-i+1&&j<=i)/*下區(qū)*/t=s-(j-(n-i))+1;if(j>=i&&j<=n-i+1)/*上區(qū)*/t=s+j-i;if(j>i&&j>n-i+1)/*右區(qū)*/t-=4*(n-2*(n-j+1))+1;if(j<i&&j<n-i+1)/*左區(qū)*/{if(j==1)t=4*(n-1)-i+2;elset+=4*(n-2*j+1)+1;}printf("%4d",t);}printf("\n");}}方案二:根據(jù)此題圖形的特點,我們可以構(gòu)造一個遞歸算法。我們可以將邊長為N的圖形分為兩局部:第一局部最外層的框架,第二局部為中間的邊長為N-2的圖形。對于邊長為N的正方型,假設(shè)其中每個元素的行號為i〔1≤i≤N〕,列號為j〔1≤j≤N〕,第1行第1列元素表示為a1,1〔a11=1〕,那么有:對于最外層的框架可以用以下數(shù)學模型描述:上邊:a1,j=a1,1+j-1(j≠1)右邊:ai,N=a1,1+N+i-2(i≠1)下邊:ai,1=a1,1+4N-i-3(i≠1)左邊:aN,j=a1,1+3N-2-j(j≠1)對于內(nèi)層的邊長為N-2的圖形可以用以下數(shù)學模型描述:左上角元素:ai,i=ai-1,i-1+4(N-2i-1)(i>1)假設(shè)令:ai,j=fun(ai-1,i-1+4(N-2i-1),當:i<(N+1)/2且j<(N+1)/2時,min=MIN(i,j),那么有:a2,2=fun(a1,1,min,min,n)ai,j=fun(a2,2,i-min+1,j-min+1,n-2*(min-1))我們可以根據(jù)上述原理,分別推導出i和j為其它取值范圍時的min取值。根據(jù)上述遞歸公式,可以得到以下參考程序。參考答案二:#include<stdio.h>#defineMIN(x,y)(x>y)?(y):(x)fun(inta11,inti,intj,intn){intmin,a22;if(i==j&&i<=1)return(a11);elseif(i==j&&i<=(n+1)/2)return(fun(a11,i-1,i-1,n)+4*(n-2*i+3));elseif(i==1&&j!=1)return(a11+j-1);elseif(i!=1&&j==n)return(a11+n+i-2);elseif(i!=1&&j==1)return(a11+4*n-3-i);elseif(i==n&&j!=1)return(a11+3*n-2-j);else{if(i>=(n+1)/2&&j>=(n+1)/2)min=MIN(n-i+1,n-j+1);elseif(i<(n+1)/2&&j>=(n+1)/2)min=MIN(i,n-j+1);elseif(i>=(n+1)/2&&j<(n+1)/2)min=MIN(n-i+1,j);elsemin=MIN(i,j);a22=fun(a11,min,min,n);return(fun(a22,i-min+1,j-min+1,n-2*(min-1)));}}main(){inta11=1,i,j,n;printf("Entern=");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n;j++)printf("%4d",fun(a11,i,j,n));printf("\n");}}【4.24】分析:此題的關(guān)鍵還是要找到輸出數(shù)字aij和行列數(shù)i、j的關(guān)系。為此將圖形分為四個區(qū)域如以以下列圖:3333332223321233222333333(此圖n為5)在左上區(qū)域,即i<=(n+1)/2、j<=(n+1)/2時,輸出數(shù)字為(n+1)/2-i+1和(n+1)/2-j+1中的大者,記為max{(n+1)/2-i+1,(n+1)/2-j+1};在右上區(qū),即i<=(n+1)/2、j>(n+1)/2時,輸出數(shù)字為max{(n+1)/2-i+1,j-n/2};在左下區(qū),即i>(n+1)/2、j<=(n+1)/2時,輸出數(shù)字為max{i-n/2,(n+1)/2-j+1};在右下區(qū),即i>(n+1)/2、j>(n+1)/2時,輸出數(shù)字為max{i-n/2,j-n/2}。參考答案:#definemax(x,y)((x)>(y)?(x):(y))main(){inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n;j++)if(i<=(n+1)/2)if(j<=(n+1)/2)printf("%4d",max((n+1)/2-i+1,(n+1)/2-j+1));elseprintf("%4d",max((n+1)/2-i+1,j-n/2));elseif(j<=(n+1)/2)printf("%4d",max(i-n/2,(n+1)/2-j+1));elseprintf("%4d",max(i-n/2,j-n/2));printf("\n");}}【4.25】分析:前面我們已經(jīng)見到過上下對稱的圖形,這是一個左右對稱的圖形,垂直中心線上的數(shù)字恰好是行號,在每行位于圖形垂直中心線左方的數(shù)字是逐漸增加的,而右方是逐漸減小的。j==i是分區(qū)的標志,左方輸出數(shù)字就是列數(shù)j,而右方的數(shù)字從i開場逐步減小1。參考答案:main(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=9-i;j++)printf("");for(j=1;j<=i;j++)printf("%2d",j);for(j=i-1;j>=1;j--)printf("%2d",j);printf("\n");}}【4.26】分析:這類輸出字符的圖形和輸出數(shù)字的圖形考慮是近似的,因為字符的ASCII碼就是一個整數(shù)。在字符碼值的變化過程中,應(yīng)該注意應(yīng)該判斷碼值是否超出字符的范圍,進展必要的處理,為了保持程序的簡潔,此題沒有考慮這個問題,在下題里對這個問題進展了處理。參考答案:main(){charc='Z';inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n+i-2;j++)if(j==n-i+1)printf("%c",c--);elseprintf("");printf("%c\n",c--);}for(i=1;i<n;i++){for(j=1;j<=2*(n-1)-i;j++)if(j==i+1)printf("%c",c--);elseprintf("");printf("%c\n",c--);}}【4.27】分析:此題與上題相近,區(qū)別在于輸出時字符的ASCII碼值的變化在圖形的中間一行為最大,同時一行的兩個字符是一樣的。程序考慮在輸入字符時設(shè)計了一個循環(huán),保證輸入的是英文字母。字符變化后進展了處理,程序中使用條件運算。在字符碼值增加的過程中,首先判斷是大寫還是小寫字符,然后判斷字符碼值是否超出英文字母z(或Z),如果超出那么重新賦為a(或A);在輸出圖象下半局部時,ASCII碼值減少用同樣的思路進展判斷。在判斷字符大小寫〔條件語句的第一個判斷〕時,用的是兩個不同的值,請讀者自行思考為什么,用同一個值是否可以參考答案:main(){charc;inti,j,n;do{printf("\nPleaseEntern,char:");scanf("%d,%c",&n,&c);}while(c<'A'||c>'Z'&&c<'a'||c>'z');for(i=1;i<=n;i++){for(j=1;j<=n+i-2;j++)if(j==n-i+1)printf("%c",c);elseprintf("");printf("%c\n",c++);c=c<'a'?(c>'Z'?'A':c):(c>'z'?'a':c);}c-=2;c=c<'Z'?(c<'A'?'Z':c):(c<'a'?'z':c);for(i=1;i<n;i++){for(j=1;j<=2*(n-1)-i;j++)if(j==i+1)printf("%c",c);elseprintf("");printf("%c\n",c--);c=c<'Z'?(c<'A'?'Z':c):(c<'a'?'z':c);}}【4.28】參考答案:#definemax(x,y)(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論