C语言程序相量的计算
为什么要做这个程序
我个人对C语言比较感兴趣,想写程序,正好想到了我们所学的电路的相量的计算。我买了计算器,可是计算器并不能直接算相量。所以我就想做一个能够计算相量的程序
如果你不学电路的话,你可能根本就不知道相量是什么,你也不会知道相量的计算对人来说有多麻烦。本程序能节省大量的计算时间,这就是本程序的意义所在
遇到的问题
我发现文件总不能正常写入,花了好长时间才发现问题所在:原来是忘了写fclose函数。有了fclose文件才能正常写入。所以大家写用到文件的程序时一定不要忘了fclose。
程序一
简介
这个程序用[0],[1],[2]之类的东西来代表相量。其实我本来是想用A[0],A[1],A[2]之类的来代表相量,但是那样太麻烦,后来我就用字母来代表相量(见程序二),再后来我又想起来用[0],[1],[2]来代表。
这个程序的最大的优点是输入全部为数字
截图
源代码
#include
#include
#include
#define NUM 9
#define PI 3.141592
struct xl
{
double x;
double y;
double r;
double t;
}A[NUM];
void input(int n);
void other();
void other2();
void open();
void save();
int main()
{
open();
int chu;
char ch;
int n;
while(1)
{
A[6].x = A[0].x + A[1].x;
A[6].y = A[0].y + A[1].y;
A[6].r = sqrt(pow(A[6].x, 2) + pow(A[6].y, 2));
A[6].t = atan(A[6].y / A[6].x);
A[7].x = A[0].x - A[1].x;
A[7].y = A[0].y - A[1].y;
A[7].r = sqrt(pow(A[7].x, 2) + pow(A[7].y, 2));
A[7].t = atan(A[7].y / A[7].x);
A[8].r = A[0].r * A[1].r;
A[8].t = A[0].t + A[1].t;
A[8].x = cos(A[8].t) * A[8].r;
A[8].y = sin(A[8].t) * A[8].r;
if(A[1].r == 0)
chu = 0;
else
{
chu = 1;
A[9].r = A[0].r / A[1].r;
A[9].t = A[0].t - A[1].t;
A[9].x = cos(A[9].t) * A[9].r;
A[9].y = sin(A[9].t) * A[9].r;
}
system("cls");
printf("[0]: 实部:%lg 虚部:%lg 半径:%lg 角度:%lg\n",A[0].x,A[0].y,A[0].r,A[0].t*180/PI);
printf("[1]: 实部:%lg 虚部:%lg 半径:%lg 角度:%lg\n",A[1].x,A[1].y,A[1].r,A[1].t*180/PI);
printf("[2]: 实部:%lg 虚部:%lg 半径:%lg 角度:%lg\n",A[2].x,A[2].y,A[2].r,A[2].t*180/PI);
printf("[3]: 实部:%lg 虚部:%lg 半径:%lg 角度:%lg\n",A[3].x,A[3].y,A[3].r,A[3].t*180/PI);
printf("[4]: 实部:%lg 虚部:%lg 半径:%lg 角度:%lg\n",A[4].x,A[4].y,A[4].r,A[4].t*180/PI);
printf("[5]: 实部:%lg 虚部:%lg 半径:%lg 角度:%lg\n",A[5].x,A[5].y,A[5].r,A[5].t*180/PI);
printf("[6]=[0] + [1]: 实部:%l