作者air7925 (雅力克修)
看板NIUEE93a
標題[閒聊] 讓我賺點錢吧@@"
時間Sat Jun 18 21:51:21 2005
嗯...有鑒於最近手頭有點緊...
就讓我PO點豪洨文賺點P幣吧"o( ̄▽ ̄)o"
不想看者請自離,傷到眼睛不要怪我~( ̄▽ ̄)~(_△_)~( ̄▽ ̄)~(_△_)~
Enum方法 讀檔+計算複數 (我知道大家都會了...就說讓我賺點p幣咩ε(┬┬_┬┬)3)
#include <stdlib.h>
#include <stdio.h>
FILE *fp1,*fp2; /* 檔案類型的指標 fp1是讀檔用,fp2是輸出用 */
struct comple /* 設定結構 */
{
float real_no;
float imaginary_no;
};
void file (float *arr) /* 讀檔的副程式 */
{
int i=0;
float temp;
fp1 = fopen("file.txt","r");
fp2 = fopen("out.txt","w");
if (fp1 == NULL)
exit (1);
printf ("Loading.........\n");
while ((fscanf(fp1,"%f",&temp))!=EOF) /* 讀取檔案裡的資料 */
{
arr[i]=temp;
i=i+1;
}
printf("\nLoad End......\n");
fclose (fp1);
}
struct comple complex_Add (struct comple x,struct comple y)
{
struct comple z;
z.real.no = x.real.no + y.real.no;
z.imaginary_no = x.imaginary_no + y.imaginary_no;
printf ("x+y=%7.3f+%7.3fi\n",z.real_no,z.imaginary_no);
fprintf (fp2,"x+y=%7.3f+%7.3fi\n",z.real_no,z.imaginary_no);
}
struct comple complex_Sub (struct comple x,struct comple y)
{
struct comple z;
z.real_no = x.real_no - y.real_no;
z.imaginary_no = x.imaginary_no - y.imaginary_no;
printf ("x-y=%7.3f+%7.3fi\n",z.real_no,z.imaginary_no);
fprintf (fp2,"x-y=%7.3f+%7.3fi\n",z.real_no,z.imaginary_no);
}
struct comple complex_Mul (struct comple x,struct comple y)
{
struct comple z;
z.real_no = x.real_no*y.real_no - (x.imaginary_no*y.imaginary_no);
z.imaginary_no = x.real_no*y.imaginary_no + y.real_no*x.imaginary_no;
printf ("x*y=%7.3f+%7.3fi\n",z.real_no,z.imaginary_no);
fprintf (fp2,"x*y=%7.3f+%7.3fi\n",z.real_no,z.imaginary);
}
struct comple complex_Div (struct comple x,struct comple y)
{
struct comple z;
if (y.imaginary_no < 0) /* 因為除會看共軛,所以要判斷正負 */
{
z.real_no = ((x.real_no*y.real_no + (x.imaginary_no*y.imaginary_no)) / (
y.real_no*y.real_no + y.imaginary_no*y.imaginary_no));
z.imaginary_no = (((-x.real_no)*y.imaginary_no + y.real_no*x.imaginary_no)
/ (y.real_no*y.real_no + y.imaginary_no*y.imaginary_no));
}
else
{
z.real_no = ((x.real_no*y.real_no - (x.imaginary_no*y.imaginary_no)) / (
y.real_no*y.real_no + y.imaginary_no*y.imaginary_no));
z.imaginary_no = ((x.real_no*y.imaginary_no + y.real_no*x.imagimary_no) /
(y.real_no*y.real_no + y.imaginary_no*y.imaginary_no));
}
int main (void)
{
struct comple x,y;
float a[4];
char c;
enum calculate
{
add = 43, /* +的ASCII碼 (十進位) */
sub = 45, /* -的ASCII碼 (十進位) */
mul = 42, /* *的ASCII碼 (十進位) */
divv = 47 /* /的ASCII碼 (十進位) */
} e;
file (a); /* 跑副程式 file */
x.real_no = a[0];
x.imaginary_no = a[1];
y.real_no = a[2];
y.imaginary_no = a[3];
printf ("x=%7.3f+%7.3fi\n",x.real_no,x.imaginary_no);
fprintf (fp2,"x=%7.3f+%7.3fi\n",x.real_no,x.imaginary_no);
printf ("y=%7.3f+%7.3fi\n",y.real_no,y.imaginary_no);
fprintf (fp2,"y=%7.3f+%7.3fi\n",y.real_no,y.imaginary_no);
do /* 用無限回圈跑「輸入運算方法」 */
{
printf ("Enter the calculate you want :");
scanf ("%c",&c);
fflush (stdin);
}
while ((c!='+') && (c!='-') && (c!='*') && (c!='/')); /* 不滿足條件時跳出 */
e=c;
switch (e)
{
case 43:
complex_Add (x,y); break;
case 45:
complex_Sub (x,y); break;
case 42:
complex_Mul (x,y); break;
case 47:
complex_Div (x,y); break;
}
system ("pause");
return 0;
}
YA~終於打完了.....雖然很亂 不過那不是我的目的v( ̄︶ ̄)y
不曉得這樣打可以賺多少???(  ̄ c ̄)y▂ξ
順帶一題,在設定ASCII碼那邊,如果設定值和輸入字串的碼不同,
則在switch那邊將不會動作,這點要注意,編碼請自行參照課本附錄F
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.173.108
※ 編輯: air7925 來自: 61.231.173.108 (06/18 21:52)
推 islyevan:◆ 這一篇文章值 1000 銀 哈哈 61.231.173.34 06/18
推 delta1116:發錢...(伸) 140.111.76.103 06/18
推 strangerEX:我也要~XD 140.111.76.103 06/18
推 sc012:咪兔!!! 140.111.76.108 06/18