當前位置:編程學習大全網 - 編程軟體 - C語言求點電荷空間各點電勢

C語言求點電荷空間各點電勢

/*

用C寫出2個點電荷在50*50格點空間的電勢值

點電荷可自取2個位置 電勢V=q/r q取1,

r為點電荷到某壹點的距離,該點電勢值為2個點電荷在這點電勢的數值和。

要求輸出文本

*/

#include<stdio.h>

#include<math.h>

main()

{

int a=0;int b=25;int c=50;int d=25;

int x=0;int y=0;

double n[50][50];

FILE *fp;

fp=fopen("123.txt","w");

//註意 x 和 y 的取值範圍都是 [0,50)

//不包括 50,否則數組 n[50][50] 會越界

for(x=0;x<50;x++)

{

for(y=0;y<50;y++)

{

// 註意這裏妳想要開平方的倒數(-1/2 次冪),用 ^(-1/2) 是不行的

// "^" 為按位異或運算符,不是冪運算符

// 雖然數學裏面我們會把 "^" 當做 冪運算符

// 但是在 C語言沒有這種用法

// 解決的方法是調用 <math.h> 裏面的函數 :

// double pow( double base, double exp )

// 這個函數的返回值是 : base^exp

// 也就是數學裏面的求冪運算

//錯誤: n[x][y]=(((x-a)^2+(y-b)^2)^(-1/2))+(((x-c)^2+(y-d)^2)^(-1/2));

n[x][y] = pow((x-a)*(x-a)+(y-b)*(y-b),-0.5) + pow((x-c)*(x-c)+(y-d)*(y-d),-0.5);

printf("%f\t",n[x][y]);

fprintf(fp,"%f\t",n[x][y]);

}

putchar('\n');

}

fclose(fp);

}

  • 上一篇:1900c掃碼槍plc設置
  • 下一篇:python如何同時執行代碼(多線程)?
  • copyright 2024編程學習大全網