課(ke)程咨詢(xun): 400-996-5531 / 投訴建議: 400-111-8989
認(ren)真做教育 專心促就業
記得大一(yi)(yi)剛學C語言的(de)(de)時候,書后(hou)有道打印(yin)(yin)三(san)角(jiao)形(xing)的(de)(de)題,記得當時做了一(yi)(yi)個多小(xiao)時才做出(chu)(chu)來(lai),相信大家初學編程也做過(guo)類(lei)似的(de)(de)問題,今天(tian)突發奇想想打印(yin)(yin)個特殊曲線,于是(shi)把目標鎖定為打印(yin)(yin)一(yi)(yi)個橢(tuo)圓(yuan),大家都知道編程語言打印(yin)(yin)輸(shu)出(chu)(chu)一(yi)(yi)個圖形(xing),如果它是(shi)單(dan)(dan)調(diao)遞(di)增或者單(dan)(dan)調(diao)遞(di)減是(shi)非常容易的(de)(de),如果非單(dan)(dan)調(diao)的(de)(de)函數(shu)就(jiu)得費一(yi)(yi)些周折。橢(tuo)圓(yuan)不是(shi)單(dan)(dan)調(diao)函數(shu)應該怎么快速(su)打印(yin)(yin)呢首先(xian)因為圓(yuan)是(shi)特殊的(de)(de)橢(tuo)圓(yuan),所以我(wo)們先(xian)想想如何(he)打印(yin)(yin)圓(yuan)形(xing),我(wo)們可以先(xian)想把圓(yuan)分(fen)成1/4,一(yi)(yi)個1/4圓(yuan)當然是(shi)單(dan)(dan)調(diao)的(de)(de)嘛(ma),利用x*x + y*y = r*r這(zhe)個圓(yuan)的(de)(de)標準方程打印(yin)(yin)輸(shu)出(chu)(chu),代碼如下:
[cpp] view plaincopyprint?
#include
int main()
{
int R = 10;
int x,y;
for(y = 0; y <= R; y++)
{
for(x = 0; x <= R; x++)
{
if(x*x + y*y < R*R)
printf("*");
else
printf(" ");
}
printf("\n");
}
}
#include
int main()
{
int R = 10;
int x,y;
for(y = 0; y <= R; y++)
{
for(x = 0; x <= R; x++)
{
if(x*x + y*y < R*R)
printf("*");
else
printf(" ");
}
printf("\n");
}
}
誒媽呀,咋出個(ge)(ge)這個(ge)(ge)畸(ji)形?我們仔細看會發現,原因是圓的行(xing)間距和列間距不同造成的,解決方法是把打印(yin)一個(ge)(ge)星'*',改成打印(yin)兩個(ge)(ge)星'**'就成了,代碼(ma)如下:
[cpp] view plaincopyprint?
#include
int main()
{
int R = 15;
double x,y;
for(y = 0; y <= R; y++)
{
for(x = 0; x <= R; x++)
{
if(x*x + y*y < R*R)
printf("**");
else
printf(" ");
}
printf("\n");
}
return 0;
}
#include
int main()
{
【免(mian)責(ze)聲明】本文(wen)部分系轉載(zai)(zai),轉載(zai)(zai)目的(de)(de)在于傳(chuan)遞更多信息(xi),并(bing)不代表本網贊同其(qi)觀點(dian)和對其(qi)真實(shi)性負責(ze)。如涉及作品內(nei)容、版權(quan)和其(qi)它問(wen)題,請在30日內(nei)與聯(lian)系我們,我們會予以(yi)更改或刪除(chu)相關文(wen)章,以(yi)保證您(nin)的(de)(de)權(quan)益!