[英]Real numbers x and y are given. We need to determine whether or not a point with coordinates (x; y) belong to the shaded area
好吧,讓我們看看我的數學是否沒有讓我無法定義這樣的事情,方程式將是這樣的:
這是一堆方程,基本上用這個來設置區域,如果和 else(),我們可以使用一些數學運算,如果你像一年前那樣問我,我仍然會記住分析class 不幸的是,那早已不復存在,但我的袖子里還有最后一張牌,那就是 wolfram alpha 我提出了它粘貼以下的方程(除了 1<Y<3 因為這導致了一個小錯誤)
(Y<3/4X+1, 0<=X<=4) and (Y<4/3X+1, -4<=X<=0) and (Y<3X+1, -5<=X< =-4) 和 (Y<1/3X+1, 4<=X<=5)
不幸的是,它輸出了相同的結果,因此將 go 放入代碼中,現在我們只需要創建一個 function 我明天將嘗試找到更好的“公式壓縮”另外,由於您是新手,我將不得不解釋一些事情 || 是合乎邏輯的或而 && 是合乎邏輯的,這與數學有關,我選擇了 double 而不是 float,因為問題主要是數學問題,所以我選擇了一些精度,盡管輸入是 int,因為我很懶,我已經回答了如何保護 scanf 免受錯誤輸入請求的影響。Is there a way to limit scanf in C? 因此,如果您需要將此代碼進行完善,並且在 C 中閱讀上面的用戶校樣,則 true 是任何不為零的數字,這意味着 while(1) 或 while(133) 會進行無限循環,因為它們將始終為真 %d 在 scanf 中格式修飾符基本上告訴 C “我在等待一個整數”
int IsItInside(double x, double y){
if (y>3 || y<1 ){// i dont need to "range" this since the its always like this
return 0;
}
if (y<(((3*x)/4)+1)&& x>=0 && x<=4){
return 1;
}
if (y<((4/(3*x))+1) && x>=-4 && x<=0){
return 1;
}
if (y<((3*x)+1) && x>=-5 && x<=-4){
return 1;
}
if (y<((1/3*x)+1) && x>=4 && x<=5){
return 1;
}
return 0;
}
int main(int argc, char const *argv[]){
int x=0, y=0;
printf("Enter x: ");
scanf ("%d", &x);
printf("Enter y: ");
scanf ("%d", &y);
if(IsItInside(x,y)){
printf("It is inside");
}else{
printf("It is outside");
}
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.