簡體   English   中英

我需要 10 個帶循環的結果,但我做不到我只能得到 4 個結果我如何修復我的循環

[英]I need 10 result with loop but I can't make it I can only get 4 result how I can fix my loop

struct nokta
{
  double x,y;
} nokt[5] = {{5,-2},{-3,-2},{-2,5},{1,6},{0,2}};

struct daire
{
  int c;
  double R;
};

int main()
{
  int i,j;
  double distance[30];
 
  for(i=0; i<4; i++)
  {
    distance[i]=sqrt((pow(nokt[i].x+nokt[i+1].x,2)+pow(nokt[i].y nokt[i+1].y,2)))
  }

  for(i=0;i<4;i++)
  {
    printf("_%lf",distance[i]);
  }
  return 0;
}

據我了解你的問題,你試圖找到所有點之間的距離。 對? 你的錯誤是你只計算了nokt數組中一個點和下一個點之間的距離。 例如,您找不到nokt[0]nokt[2]的距離。 因此,您需要在已經使用過的for loop再添加一個for loop 此外,您可能希望為您的特定目標構建函數,例如查找距離等。最后,如果指數是一個小的自然數,那么最好使用您自己的冪函數而不是math.h pow(double, double)函數math.h 原因是 C 中沒有 pow(double,int) 函數,因此在您的情況下,您可以使用pow(double,double)進行更復雜的計算。 請參閱此討論

我希望這段代碼能解決你的問題。 否則,讓我知道。

#include <stdio.h>
#include <math.h>

struct nokta
{
  double x,y;
} nokt[5] = {{5,-2},{-3,-2},{-2,5},{1,6},{0,2}};

double mySquareFunc(double x);
double findDistance(struct nokta p1, struct nokta p2);


int main(){
  int i,j,indX = 0;
  double distance[10];
  for(i=0; i<5; i++){
      for(j=i+1;j<5; j++){
         distance[indX] = findDistance(nokt[i],nokt[j]);
         indX++;
      }
  }

  for(i=0;i<10;i++)
  {
   printf("_%lf",distance[i]);
  }
  return 0;
}

double mySquareFunc(double x){
    return x*x;
}

double findDistance(struct nokta p1, struct nokta p2){
    return sqrt(mySquareFunc(p1.x-p2.x)+mySquareFunc(p1.y-p2.y));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM