看板 NIUEE93a 關於我們 聯絡資訊
嗯...有鑒於最近手頭有點緊... 就讓我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