Re: [問題] "*"畫成圓(c語言)
迴圈只需要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
→
08/07 17:55, , 1F
08/07 17:55, 1F
推
08/09 22:41, , 2F
08/09 22:41, 2F
→
08/09 22:42, , 3F
08/09 22:42, 3F
討論串 (同標題文章)