freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c語言圖形輸出習(xí)題(編輯修改稿)

2025-04-20 04:48 本頁面
 

【文章內(nèi)容簡介】 if(i==40) printf(|); /* 打印中心的豎線 */else printf( );}printf(\n);}}【】分析:首先設(shè)計屏幕圖形,如果預(yù)計圓形在屏幕上打印20行,所以定義圓的直徑就是20,半徑為10,圓的方程是X2Y2=R2,因為圖形不是從中心開始打印而是從邊沿開始,所以Y從10變化到10,根據(jù)方程求出X,對求得的X值再根據(jù)屏幕行寬進(jìn)行必要的調(diào)整得到應(yīng)打印的屏幕位置。參考答案:include main( ){ double y;int x,m;for(y=10;y=10;y) /* 圓的半徑為10 */{ m = * sqrt(100y*y); /* 計算行y對應(yīng)的列坐標(biāo)m */for(x=1;x30m;x++) printf( ); /* 輸出圓左側(cè)的空白 */printf(*); /* 輸出圓的左側(cè) */for(;x30+m;x++) printf( ); /* 輸出圓的空心部分 */printf(*\n); /* 輸出圓的右側(cè) */}}【】參考答案:include include main( ){ double y;int x, m, n, yy;for( yy=0;yy=20;yy++){ y = *yy;m = acos(1y)*10;n = 45 * (y1)+31;for( x=0;x=62;x++ )if( x==m amp。amp。 x==n ) printf(+);else if(x==n) printf(+);else if(x==m || x==62m) printf(*);else printf( );printf(\n);}}【】分析:編程的關(guān)鍵為兩點(diǎn),一是使用控制輸出的行和列,這方面的內(nèi)容在前面已經(jīng)敘述,另一點(diǎn)是輸出的數(shù)字和所在行、列關(guān)系。此題第一行輸出的數(shù)字恰好是列數(shù),從第二行起每行的數(shù)字均比上一行增n。參考答案:main( ){ int i,j,n;printf(\nPlease Enter n: );scanf(%d,amp。n);for(i=1;i=n;i++){ for(j=1;j=n;j++)printf(%4d,(i1)*n+j);printf(\n);}}           【】分析:此題的關(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)變量進(jìn)行運(yù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。另外只有當(dāng)ji時才輸出數(shù)字。參考答案:main( ){ int i,j,m,n,k=1; /* k是第一列元素的值 */printf(Please enter m= );scanf(%d,amp。m);for(i=1;i=m;i++) { n=k; /* n第i行中第1個元素的值 */for(j=1;j=mi+1;j++) { printf(%3d,n);n = n+i+j; /* 計算同行下一個元素的值 */}printf(\n);k=k+i; /* 計算下一行中第1個元素 */}} 【】參考答案:main( ){ int i,j,n;printf(\nPlease Enter n: );scanf(%d,amp。n);for(i=1;i=n;i++){ for(j=1;j=n;j++)if(j=i) printf( 1);else printf(%3d,ji+1);printf(\n);}}【】分析:可用不同的方案解決此問題,為了開闊讀者的思路,這里給出了兩個參考答案,其中第二個答案是使用了遞歸方法。方案一:首先尋找數(shù)字輸出數(shù)字和行列的關(guān)系。每圈有四個邊,把每邊的最后一個數(shù)字算為下邊的開始,最外圈每邊數(shù)字個數(shù)是n1個,以后每邊比外邊一邊少兩個數(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ù)字。1 2 3 4 5 6 724 25 26 27 28 29 8 23 40 41 42 43 30 9 22 39 48 49 44 31 1021 38 47 46 45 32 1120 37 36 35 34 33 1219 18 17 16 15 14 13為敘述方便我們稱四個區(qū)域為上、下、左、右區(qū)。設(shè)i、j為行列號,n為圖形的總行數(shù),則滿足各區(qū)的范圍是,上區(qū):j=i 且 j=ni+1 ;下區(qū):j=i 且 j=ni+1 ;左區(qū):ji 且 jni+1 ;右區(qū):ji 且 jni+1 。現(xiàn)在問題是,如果知道一行在不同區(qū)域開始第一個位置的數(shù)字,然后該區(qū)后續(xù)的數(shù)字就可利用前面分析的規(guī)律得到。對于右區(qū)開始各行第一個數(shù)字最易求出,為4*(n1)i+1。后續(xù)一個和同行前一個數(shù)字之差是4*[n1(j1)*2]+1,其中方括號內(nèi)是每邊的數(shù)字個數(shù)。對角線上的數(shù)字是分區(qū)點(diǎn),對角線上相臨數(shù)字仍然相差一圈數(shù)字個數(shù),讀者自行分析得到計算公式。右區(qū)開始的第一個數(shù)字可以從上區(qū)結(jié)束時的數(shù)字按規(guī)律求出。下述程序用變量s保存分區(qū)對角線上的數(shù)字。參考答案一:main(){ int i,j,k,n,s,m,t;printf(Please enter n:);scanf(%d,amp。n);for(i=1;i=n;i++){ s=(i=(n+1)/2)? 1:3*(n(ni)*21)+1;m=(i=(n+1)/2)? i:ni+1; /* m1是外層圈數(shù) */for(k=1;km;k++) s+=4*(n2*k+1);for(j=1;j=n;j++){ if(j=ni+1 amp。amp。 j=i) /* 下區(qū) */t=s(j(ni))+1;if(j
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1