看板 C_and_CPP 關於我們 聯絡資訊
迴圈只需要2*r的長度 而圓心在(r,r) 迴圈中在一個判斷式if(sqrt((i-r)*(i-r)+(j-r)*(j-r)) == r) 若為true則printf("%c",c) 這樣應該可以滿足你要的要求了.... for(i=0;i<2*r;i++) { for(j=0;j<2*r;j++) { if((int)sqrt((i-r)*(i-r)+(j-r)*(j-r)) == r) { printf("%c",c); } else { printf(" ") } } } 若圓的解析度要高一點... 那i,j就用float去計算囉... ※ 引述《milkya (拜託我想要變瘦)》之銘言: : 這是一個以星號畫出斜線的範例 : 在DEV-C裡面需要先引入參數半徑R跟字元 : 我的問題是如何將for迴圈的內容 : 改成可以畫出一個半徑為R圓以字元*排列 : #include <stdio.h> : #include <math.h> : int main(int argc, char *argv[]) : { : int r, x, y; : char c; : sscanf(argv[1],"%d",&r); : sscanf(argv[2],"%c",&c); : for (y=0;y<=r;y++) : { : for (x=1;x<3*y;x++) : printf(" "); : printf("%c\n",c); : } : getchar(); : return 0; : } : 我大概猜第一個for應該改成 (y=0;y<=2*r;y++) : 但是下一層我沒有頭緒希望大家幫幫我 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.124.205.246
MOONRAKER:何必sqrt(),全部都可以用整數計算做完 08/07 17:55
VictorTom:混了三天偷偷回, 就是右邊用r*r的意思XD 08/09 22:41
VictorTom:話說回來~~用 == 好像畫得出來的不多吧?? 08/09 22:42