# C語言 程式設計 作品 ## [變數](https://onlinegdb.com/sBiW8zgan) :::info ``` #include <stdio.h> int main(){ //建立變數 int myNum = 5; //整數 float myFloatNum = 5.99; //浮點數 char myLetter = 'D'; //字元 //輸出變數 printf("%d\n", myNum); printf("%f\n", myFloatNum); printf("%c\n", myLetter); return 0; } //輸出 int 變數的值 //int a = 30; // printf(" %d",a); ``` ::: ## [如何判斷一個給定的數字是偶數還是奇數?](https://onlinegdb.com/wcF2YMiea) :::success ``` #include <stdio.h> int main() { int x =4 ; if(x % 2 == 0){ printf("偶");} else{ printf("奇");} } ``` ::: ## [輸入一個整數後即輸出該數的絶對值](https://onlinegdb.com/sWVgr0UAO) :::warning ``` #include <stdio.h> int main() { int x =-5 ; if(x>0 ) {printf("%d",x ); } if(x<0 ) {printf("%d",-x ); } } ``` ::: ## [正三角形、等腰三角形、直角三角形、普通三角形判斷](https://onlinegdb.com/4WWSgDKVxO) :::danger ``` #include <stdio.h> int main() { int x=3; //線段 1 int y=3; //線段 2 int z=6; //線段 3 int xyz=0; //借用 if(x>y){ xyz = x; x = y; y = xyz; } if(y>z){ xyz = y; y = z; z = xyz; } int mm=x*x; printf("%d\n",mm); int hh=y*y; printf("%d\n",hh); int bb=z*z; printf("%d\n",bb); if(x+y>z){ //是三角形 if(x==y||y==z){ if(x==y&&y==z) printf("正三角形"); else printf("等腰三角形"); } if(mm+hh==bb) printf("直角三角形"); else if((x!=y||y!=z)||(x!=y&&y!=z)) printf("普通三角形"); } else{ printf("不可"); } } ``` ::: ## [判斷三條線段是否可圍成一個三角形](https://onlinegdb.com/OIV2zwjjF) :::info ``` #include <stdio.h> int main() { int x=555; //線段 1 int y=6; //線段 2 int z=12; //線段 3 if(x+y>z && x+z>y && y+z>x){ //是三角形 printf("可"); } if(x+y<z || x+z<y || y+z<x){ //不是三角形 printf("不可"); } } ``` ::: ## [if、else練習](https://onlinegdb.com/EGZZvR3C5) :::success ``` #include <stdio.h> int main(){ int time = 24; if (time < 12){ printf("早安"); } else { printf("午安"); } } ``` ::: ## [switch、case練習](https://onlinegdb.com/4uHoej1-s) :::warning ``` #include <stdio.h> int main(){ int day = 3; switch (day) { case 1: printf("Monday"); break; case 2: printf("Tuesday"); break; case 3: printf("Wednesday"); break; } } ``` ::: ## [if else if練習](https://onlinegdb.com/4Z0F-pxcq8) :::danger ``` #include <stdio.h> int main() { int time = 22; if (time < 12) { printf("Good morning."); } else if (time < 20) { printf("Good day."); } else { printf("Good evening."); } } ``` ::: ## [1加到10](https://onlinegdb.com/BsCpcj_6z) :::info ``` #include <stdio.h> int main() { int i = 0; int o = 1; while (o < 11) { i += o; o += 1; } printf("%d\n", i); } ``` ::: ## [while練習](https://onlinegdb.com/4cJMi5wkY) :::success ``` #include <stdio.h> int main() { int i = 0; while (i < 5) { printf("%d\n", i); i++; } } ``` ::: ## [判斷一個整數,是質數還是合數,並找出所有的因數](https://onlinegdb.com/9jB09WlY8) :::warning ``` #include <stdio.h> int main() { int m, j = 7 , is_prime = 1 for (m = 2; m < j; m++){ if ( j % m == 0){ printf("%d\n", m); is_prime = 0; } } if (is_prime == 1) printf("是質數"); else printf("是合數"); } ``` ::: ## [找零機器](https://onlinegdb.com/7kRywWwCM) :::danger ``` #include <stdio.h> int main() { int myNum; scanf("%d", &myNum); int m = myNum/100;// int p = myNum%100; int i = p/50;// int o = p%50; int l = o/10;// int k = o%10; int j = k/5;// int y = k%5; int h = y/1;// printf("有%d個100元\n", m); printf("有%d個50元\n", i); printf("有%d個10元\n", l); printf("有%d個5元\n", j); printf("有%d個1元\n", h); } ``` ::: ## [身份證字號真偽判斷](https://onlinegdb.com/CEhGqhaSN) :::info ``` #include <stdio.h> int main() { char my; char ij[9]; printf("請輸入身分證字號(請打大寫)\n"); scanf("%c", &my); scanf("%s", ij); printf("%c\n", my); printf("%d\n", my); for(int lsl = 0;lsl<9;lsl++) ij[lsl] = ij[lsl]-48; int m; if(my== 'A') m = 10; if(my== 'B') m = 11; if(my== 'C') m = 12; if(my== 'D') m = 13; if(my=='E') m = 14; if(my=='F') m = 15; if(my=='G') m = 16; if(my=='H') m = 17; if(my=='I') m = 34; if(my=='J') m = 18; if(my=='K') m = 19; if(my=='L') m = 20; if(my=='M') m = 21; if(my=='N') m = 22; if(my=='O') m = 35; if(my=='P') m = 23; if(my=='Q') m = 24; if(my=='R') m = 25; if(my=='S') m = 26; if(my=='T') m = 27; if(my=='U') m = 28; if(my=='V') m = 29; if(my=='W') m = 32; if(my=='X') m = 30; if(my=='Y') m = 31; if(my=='Z') m = 33; printf("%d\n", m); int f = m/10; printf("%d\n", f); int u = m%10; printf("%d\n", u); int x = u*9; int y = ij[0]*8,h = ij[1]*7,jjj = ij[2]*6,kkk = ij[3]*5,lll = ij[4]*4,rrr = ij[5]*3,mmm = ij[6]*2; int tttt = f+x+y+h+jjj+kkk+lll+rrr+mmm+ij[7]+ij[8]; printf("%d\n", tttt); if (tttt%10==0) printf("是身分證字號"); else printf("不是身分證字號"); } ``` ::: ## [冒牌費氏數列](https://onlinegdb.com/OUMX00BzTv) :::success ``` #include <stdio.h> int f(int n); int main() { int n; scanf("%d", &n); printf("%d", f(n)); return 0; } int f(int n) { if (n == 1) return 10; if (n == 2) return 15; if (n == 3) return 16; return f(n - 2) + f(n - 3); } ``` ::: ## [終極密碼](https://onlinegdb.com/gJctBeRCOg) :::warning ``` #include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ int y; srand( time(NULL) ); int min; int max; scanf("%d", &min); scanf("%d", &max); int x = rand() % (max - min + 1) + min; int z=0; do { scanf("%d", &y); if(x > y){ printf("%d~%d\n",y ,max); } if(x < y){ printf("%d~%d\n",y ,min); } z++; } while (x != y); printf("Ya%d" ,z); return 0; } ``` ::: ## [哈囉](https://zerojudge.tw/ShowProblem?problemid=a001) :::danger ``` #include<stdio.h> int main() { char string[100]; while(scanf("%s",string)!=EOF) { printf("hello, "); printf("%s\n",string); } return 0; } ``` ::: ## [簡易加法](https://zerojudge.tw/ShowProblem?problemid=a002) :::success ``` #include <stdio.h> int main() { int a, b; scanf("%d %d", &a, &b); printf("%d", a+b); return 0; } ``` ::: ## [兩光法師占卜術](https://zerojudge.tw/ShowProblem?problemid=a003) :::info ``` #include<stdio.h> int main() { int M,D; int sum; while(scanf("%d%d",&M,&D)!=EOF) { sum=0; sum=(M*2+D)%3; if(sum==0) printf("普通\n"); else if(sum==1) printf("吉\n"); else if(sum==2) printf("大吉\n"); } return 0; } ``` ::: ## [文文的求婚](https://zerojudge.tw/ShowProblem?problemid=a004) :::warning ``` #include <stdio.h> int main() { //宣告變數year,代表西元年 int year; //使用EOF寫法判斷程式執行的條件 while(scanf("%d", &year) != EOF) { //根據題意,西元年被4整除且不被100整除,或被400整除者即為閏年 if(year%4 == 0 && year%100 != 0 || year%400 == 0) printf("閏年\n"); else printf("平年\n"); } return 0; } ``` ::: ## [Eva 的回家作業](https://zerojudge.tw/ShowProblem?problemid=a005) :::danger ``` #include <stdio.h> int main() { // 宣告並讀取變數t,代表數列的數目 int t; scanf("%d", &t); // 使用for迴圈分別討論每一個數列的情況 for(int i = 0 ; i < t ; i++) { // 宣告並讀取陣列a[4],代表輸入數列的前四項 int a[4]; scanf("%d %d %d %d", &a[0], &a[1], &a[2], &a[3]); // 若數列任兩項間的差相同,即為等差數列 if(a[1]-a[0] == a[2]-a[1]) printf("%d %d %d %d %d\n", a[0], a[1], a[2], a[3], a[3]+(a[1]-a[0])); // 若否,即為等比數列 else printf("%d %d %d %d %d\n", a[0], a[1], a[2], a[3], a[3]*(a[1]/a[0])); } return 0; } ``` ::: ## [一元二次方程式](https://zerojudge.tw/ShowProblem?problemid=a006) :::success ``` #include <stdio.h> #include <math.h> int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); int D = b*b-4*a*c; if(D < 0) printf("No real root\n"); else { int x1 = (-b+sqrt(D))/(2*a); int x2 = (-b-sqrt(D))/(2*a); if(D > 0) printf("Two different roots x1=%d , x2=%d", x1, x2); else if(D == 0) printf("Two same roots x=%d", x1); } return 0; } ``` ::: ## 下一次我想要 :::spoiler ![a930176515a14fda97eb34464b93d1cd](https://hackmd.io/_uploads/BkHFDftHR.png) ## 在這個社團中,你們一起探索程式語言的奧秘,這個過程不僅提升了你的程式設計技能,更讓你學會了如何與他人合作,如何共同解決問題。當你們一起解決難題時,你們彼此之間的信賴和合作無疑會得到加強。而當你們分享成功的喜悅時,這種成就感會讓你們更加堅定地走下去。 ## 這樣的經驗,不僅讓你在技術上有所成長,更在人際關係和團隊合作方面有所提升。這是一個非常寶貴的經驗,希望你能繼續保持這樣的熱情和投入,相信你在未來一定能有更大的成就。 ![9da8c21ee09f4bea9605d5258de5e76a](https://hackmd.io/_uploads/BkaLUfFH0.png) :::info ## 從我第一次聽說"C語言社團"的那一刻起,我就對它充滿了興趣和期待。我期待能透過這個社團,學習到C語言的知識,並在實踐中提升自己的程式設計技能。 ## C語言是一種強大而靈活的程式語言,它的應用範疇廣泛,從操作系統到嵌入式系統都有其身影。我期待能掌握這門語言,並將其應用在解決實際問題上。 ## 除此之外,我也期待在"C語言社團"裡,能遇到一群和我一樣對C語言充滿熱情的朋友。我們可以一起學習,一起進步,一起分享我們的成功和挫折。我相信,這樣的經驗將對我們的學習和成長都有莫大的幫助。 ## 我對"C語言社團"充滿了期待,我相信在這裡,我將獲得豐富的知識,寶貴的經驗,以及一生的朋友。我期待在未來的日子裡,我能在這個社團裡學到更多,也能與這群朋友一起創造更多美好的回憶。 :::success ::: # 我八年級了 ## 程式: ### [哈囉](https://zerojudge.tw/ShowProblem?problemid=a001) ``` #include<stdio.h> int main() { char string[100]; while(scanf("%s",string)!=EOF) { printf("hello, "); printf("%s\n",string); } return 0; } ``` ### [簡易加法](https://zerojudge.tw/ShowProblem?problemid=a002) ``` #include <stdio.h> int main() { int a, b; scanf("%d %d", &a, &b); printf("%d", a+b); return 0; } ``` ### [兩光法師占卜術](https://zerojudge.tw/ShowProblem?problemid=a003) ``` #include<stdio.h> int main() { int M,D; int sum; while(scanf("%d%d",&M,&D)!=EOF) { sum=0; sum=(M*2+D)%3; if(sum==0) printf("普通\n"); else if(sum==1) printf("吉\n"); else if(sum==2) printf("大吉\n"); } return 0; } ``` ### [文文的求婚](https://zerojudge.tw/ShowProblem?problemid=a004) ``` #include <stdio.h> int main() { //宣告變數year,代表西元年 int year; //使用EOF寫法判斷程式執行的條件 while(scanf("%d", &year) != EOF) { //根據題意,西元年被4整除且不被100整除,或被400整除者即為閏年 if(year%4 == 0 && year%100 != 0 || year%400 == 0) printf("閏年\n"); else printf("平年\n"); } return 0; } ``` ### [Eva 的回家作業 ](https://zerojudge.tw/ShowProblem?problemid=a005) ``` #include <stdio.h> int main() { // 宣告並讀取變數t,代表數列的數目 int t; scanf("%d", &t); // 使用for迴圈分別討論每一個數列的情況 for(int i = 0 ; i < t ; i++) { // 宣告並讀取陣列a[4],代表輸入數列的前四項 int a[4]; scanf("%d %d %d %d", &a[0], &a[1], &a[2], &a[3]); // 若數列任兩項間的差相同,即為等差數列 if(a[1]-a[0] == a[2]-a[1]) printf("%d %d %d %d %d\n", a[0], a[1], a[2], a[3], a[3]+(a[1]-a[0])); // 若否,即為等比數列 else printf("%d %d %d %d %d\n", a[0], a[1], a[2], a[3], a[3]*(a[1]/a[0])); } return 0; } ``` ### [一元二次方程式 ](https://zerojudge.tw/ShowProblem?problemid=a006) ``` #include <stdio.h> #include <math.h> int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); int D = b*b-4*a*c; if(D < 0) printf("No real root\n"); else { int x1 = (-b+sqrt(D))/(2*a); int x2 = (-b-sqrt(D))/(2*a); if(D > 0) printf("Two different roots x1=%d , x2=%d", x1, x2); else if(D == 0) printf("Two same roots x=%d", x1); } return 0; } ``` ### [解碼器](https://zerojudge.tw/ShowProblem?problemid=a009) ``` #include <stdio.h> #include <string.h> int main() { //以字元陣列的形式宣告,並以字串的形式讀取輸入的明碼 char arr[1000]; scanf("%s", arr); //利用for迴圈,逐項將明碼轉為密碼 for(int i = 0 ; i < strlen(arr) ; i++) arr[i] = arr[i]-7; printf("%s", arr); return 0; } ``` ### [因數分解](https://zerojudge.tw/ShowProblem?problemid=a010) ``` #include <stdio.h> int main() { int num; scanf("%d", &num); for(int factor = 2 ; factor <= num ; factor++) { if(num%factor == 0) { int power = 0; while(num%factor == 0) { num /= factor; power++; } if(power == 1) printf("%d", factor); else printf("%d^%d", factor, power); if(num != 1) printf(" * "); } } return 0; } ``` ### [羅馬數字](https://zerojudge.tw/ShowProblem?problemid=a013) ``` #include<stdio.h> #include<math.h> #include<string.h> int char_to_number(char []); int main(){ int dif; char array1 [30]={'\0'}; char array2 [30]={'\0'}; while(scanf("%s",array1)!=EOF) { char s[30]={0}; if(array1[0]=='#') break; scanf("%s",array2); dif=abs(char_to_number(array1)-char_to_number(array2)); if(dif==0) printf("ZERO\n"); else { int i=0; while(dif>=1000) { dif-=1000; s[i]='M'; i++; } if(dif>=900) { dif-=900; s[i]='C'; s[i+1]='M'; i+=2; } if(dif>=500) { dif-=500; s[i]='D'; i++; } if(dif>=400) { dif-=400; s[i]='C'; s[i+1]='D'; i+=2; } while(dif>=100) { dif-=100; s[i]='C'; i++; } if(dif>=90) { dif-=90; s[i]='X'; s[i+1]='C'; i+=2; } if(dif>=50) { dif-=50; s[i]='L'; i++; } if(dif>=40) { dif-=40; s[i]='X'; s[i+1]='L'; i+=2; } while(dif>=10) { dif-=10; s[i]='X'; i++; } if(dif>=9) { dif-=9; s[i]='I'; s[i+1]='X'; i+=2; } if(dif>=5) { dif-=5; s[i]='V'; i++; } if(dif>=4) { dif-=4; s[i]='I'; s[i+1]='V'; i+=2; } while(dif>=1) { dif-=1; s[i]='I'; i++; } } printf("%s\n",s); } return 0; } int char_to_number(char s[]) { int sum=0; int i; for(i=0;i<strlen(s);i++){ if(s[i]=='C'&&s[i+1]=='M') { sum-=100; } else if(s[i]=='C'&&s[i+1]=='D') { sum-=100; } else if(s[i]=='X'&&s[i+1]=='C') { sum-=10; } else if(s[i]=='X'&&s[i+1]=='L') { sum-=10; } else if(s[i]=='I'&&s[i+1]=='X') { sum-=1; } else if(s[i]=='I'&&s[i+1]=='V') { sum-=1; } else if(s[i]=='I') { sum+=1; } else if(s[i]=='V') { sum+=5; } else if(s[i]=='X') { sum+=10; } else if(s[i]=='L') { sum+=50; } else if(s[i]=='C') { sum+=100; } else if(s[i]=='D') { sum+=500; } else if(s[i]=='M') { sum+=1000; } } return sum; } ``` ### [矩陣的翻轉](https://zerojudge.tw/ShowProblem?problemid=a015) ``` #include<stdio.h> void ReadArray(int,int,int [100][100]); void PrintArray(int ,int,int [100][100]); int main(){ int i,j; int m,n; int array1[100][100]; while(scanf("%d %d",&m,&n)!=EOF) { ReadArray(m,n,array1); PrintArray(m,n,array1); } return 0; } void ReadArray(int m,int n,int array[100][100]){ int i,j; for(i=0;i<m;i++) { for(j=0;j<n;j++) { scanf("%d",&array[i][j]); } } } void PrintArray(int m,int n,int array[100][100]) { int i,j; for(i=0;i<n;i++) { for(j=0;j<m;j++) { printf("%d ",array[j][i]); } printf("\n"); } printf("\n"); } ``` ### [身分證檢驗](https://zerojudge.tw/ShowProblem?problemid=a020) ``` #include<stdio.h> #include<string.h> int main(){ char identity[11]; int check[11]; int i; int sum,temp; while(scanf("%s",&identity)!=EOF) { if(identity[0]=='A') { check[0]=1; check[1]=0; } if(identity[0]=='B') { check[0]=1; check[1]=1; } if(identity[0]=='C') { check[0]=1; check[1]=2; } if(identity[0]=='D') { check[0]=1; check[1]=3; } if(identity[0]=='E') { check[0]=1; check[1]=4; } if(identity[0]=='F') { check[0]=1; check[1]=5; } if(identity[0]=='G') { check[0]=1; check[1]=6; } if(identity[0]=='H') { check[0]=1; check[1]=7; } if(identity[0]=='I') { check[0]=3; check[1]=4; } if(identity[0]=='J') { check[0]=1; check[1]=8; } if(identity[0]=='K') { check[0]=1; check[1]=9; } if(identity[0]=='L') { check[0]=2; check[1]=0; } if(identity[0]=='M') { check[0]=2; check[1]=1; } if(identity[0]=='N') { check[0]=2; check[1]=2; } if(identity[0]=='O') { check[0]=3; check[1]=5; } if(identity[0]=='P') { check[0]=2; check[1]=3; } if(identity[0]=='Q') { check[0]=2; check[1]=4; } if(identity[0]=='R') { check[0]=2; check[1]=5; } if(identity[0]=='S') { check[0]=2; check[1]=6; } if(identity[0]=='T') { check[0]=2; check[1]=7; } if(identity[0]=='U') { check[0]=2; check[1]=8; } if(identity[0]=='V') { check[0]=2; check[1]=9; } if(identity[0]=='W') { check[0]=3; check[1]=2; } if(identity[0]=='X') { check[0]=3; check[1]=0; } if(identity[0]=='Y') { check[0]=3; check[1]=1; } if(identity[0]=='Z') { check[0]=3; check[1]=3; } for(i=1;i<10;i++) { if(identity[i]=='0') check[i+1]=0; if(identity[i]=='1') check[i+1]=1; if(identity[i]=='2') check[i+1]=2; if(identity[i]=='3') check[i+1]=3; if(identity[i]=='4') check[i+1]=4; if(identity[i]=='5') check[i+1]=5; if(identity[i]=='6') check[i+1]=6; if(identity[i]=='7') check[i+1]=7; if(identity[i]=='8') check[i+1]=8; if(identity[i]=='9') check[i+1]=9; } sum=0; sum=check[0]+check[10]; for(i=1;i<10;i++) { temp=check[i]*(10-i); sum+=temp; } if(sum%10==0) printf("real\n"); else printf("fake\n"); } return 0; } ``` ### [迴文](https://zerojudge.tw/ShowProblem?problemid=a022) ``` #include <stdio.h> #include <string.h> int main() { //宣告並讀取陣列arr,代表輸入的字串 char arr[1000]; scanf("%s", arr); //宣告變數count,代表前後對稱的組數 int count = 0; //迴文字串必然對稱,因此我們可以檢查該字串前後對應到的項是否相同 //若發現字串的任一組頭尾不同,即非迴文,輸出no後跳出迴圈 for(count = 0 ; count < strlen(arr)/2 ; count++) { if(arr[count] != arr[(strlen(arr)-1)-count]) { printf("no"); break; } } //即非迴文到字串的一半都未發現不同的組,則為迴文,輸出yes if(count == strlen(arr)/2) printf("yes"); return 0; } ``` ### [最大公因數(GCD)](https://zerojudge.tw/ShowProblem?problemid=a024) ``` #include <stdio.h> int main() { //宣告變數a、b,代表輸入的兩個整數 int a, b; scanf("%d%d", &a, &b); //宣告變數big、small,分別代表兩數中較大和較小的數字 int big = (a > b) ? a : b; int small = (a > b) ? b : a; //輾轉相除法:將兩數中較大的數字除以較小的數字, //原來較小的數字作為新的運算中教大的數字,餘作為新的運算中較小的數字 //直到其一為0時運算結束,剩下的數字就是兩數的最大公因數 while(small != 0) { int temp = big; big = small; small = temp%small; } printf("%d", big); return 0; } ``` ### [二進位制轉換](https://zerojudge.tw/ShowProblem?problemid=a034) ``` #include <stdio.h> #include <math.h> int main() { int dec; while(scanf("%d", &dec) != EOF) { int bin[32] = {}, non_zero_digit = 0; for(int n = 31, i = 0 ; n >= 0 ; n--, i++) { if(dec >= pow(2, n)) { bin[i] = 1; dec -=pow(2, n); non_zero_digit++; } else bin[i] = 0; if(bin[i] != 0 || non_zero_digit != 0) printf("%d", bin[i]); } printf("\n"); } return 0; } ``` ### [數字翻轉](https://zerojudge.tw/ShowProblem?problemid=a038) ``` #include <stdio.h> #include <string.h> int main() { //宣告並讀取字元陣列num,代表輸入的數字 char num[10]; scanf("%s", num); //宣告變數test,並設初始值為0,記錄前面是否有輸出過非零數字 //若test為0,代表之前尚未輸出過非零數字,這一位數若是0即為前綴0,不需輸出 //若test為1,代表之前已經輸出過非零數字,這一位數就算是0也不是前綴0,需輸出 int test = 0; for(int i = 0 ; i < strlen(num) ; i++) if(num[(strlen(num)-1)-i] != '0' || test != 0) { printf("%c", num[(strlen(num)-1)-i]); //輸出後將test設為1,代表已經輸出過非零數字 test=1; } //若test仍為0,說明直到跑完指個陣列都未曾輸出過非零數字,也就是說這個數字就是0 if(test == 0) printf("0"); return 0; } ``` ### [阿姆斯壯數](https://zerojudge.tw/ShowProblem?problemid=a040) ``` #include <stdio.h> #include <math.h> int main() { //宣告並讀取變數n、m,代表判斷範圍的上下限 int n, m, test = 0; scanf("%d %d", &n, &m); //利用for迴圈跑從n到m的所有數字 for(int num = n ; num <= m ; num++) { //宣告變數num,代表檢查到的數;宣告變數len,代表此數的位數 int i = num, len = 1; //若此數大於等於10,就將其除以10,並將len加一 while(i >= 10) { i /= 10; len++; } //宣告變數sum,代表各個位數的總和 int sum = 0; //從最高位開始,將此數的各個位數len次方後相加 for(int i = len ; i > 0 ; i--) //num為目前判斷的數字,共len位數,i代表目前檢查到的位數 //將num%pow(10, i)即可得num在i位以後(含)的數字,/pow(10, i-1)可得num在i-1位以前的數字,即為第i位數字 sum += pow((num%(int)pow(10, i)/(int)pow(10, i-1)), len); //若此len位數的數字,各個位數的len次方和等於自己,即為阿姆斯壯數,需輸出 if(sum == num) { printf("%d ", num); test++; } } //若範圍內的數字皆無阿姆斯壯數,輸出None if(test == 0) printf("none"); return 0; } ``` ### [費波那契數列](https://onlinegdb.com/Pzc6Hm1-dm) ``` #include <stdio.h> int f(int m); int main(){ int l; scanf("%d", &l); int t[] = {1,1}; printf("%d",f(l)); return 0; } int f(int n){ if(n == 0) { // 如果n等於0 return 0; } if(n == 1) { // 如果n等於1 return 1; } return f(n - 1) + f(n - 2); // 其他情形 } ``` ### [桃園市公立高中職落點評估](https://onlinegdb.com/Pzc6Hm1-dm) ``` #include <stdio.h> #include <string.h> // 字串比對並回傳對應點數 int gradeToPoints(const char* grade) { if (strcmp(grade, "A++") == 0) return 7; else if (strcmp(grade, "A+") == 0) return 6; else if (strcmp(grade, "A") == 0) return 5; else if (strcmp(grade, "B++") == 0) return 4; else if (strcmp(grade, "B+") == 0) return 3; else if (strcmp(grade, "B") == 0) return 2; else if (strcmp(grade, "C") == 0) return 1; else return 0; } // 作文級分轉換 int essayScore(int level) { if (level <= 1) return level; if (level <= 3) return 2; return 3; } int main() { char chineseGrade[4], mathGrade[4], scienceGrade[4], socialGrade[4], englishGrade[4]; int essayLevel; int totalPoints = 0, totalScore = 0; // 輸入 printf("請輸入國文成績(A++、A+、A、B++、B+、B、C):"); scanf("%s", chineseGrade); printf("請輸入數學成績:"); scanf("%s", mathGrade); printf("請輸入自然成績:"); scanf("%s", scienceGrade); printf("請輸入社會成績:"); scanf("%s", socialGrade); printf("請輸入英文成績:"); scanf("%s", englishGrade); printf("請輸入作文級分(0到6):"); scanf("%d", &essayLevel); // 加總點數 totalPoints += gradeToPoints(chineseGrade); totalPoints += gradeToPoints(mathGrade); totalPoints += gradeToPoints(scienceGrade); totalPoints += gradeToPoints(socialGrade); totalPoints += gradeToPoints(englishGrade); // 加作文分數 totalScore = totalPoints + essayScore(essayLevel); // 輸出結果 printf("總點數是:%d\n", totalPoints); printf("總分(包含作文分數)是:%d\n", totalScore); // 落點判斷 if (totalScore >= 33) { printf("🎓 您符合武陵高中的錄取標準!\n"); } else if (totalScore >= 31) { printf("🎓 您符合中壢高中或桃園高中的錄取標準!\n"); } else if (totalScore >= 29) { printf("🎓 您符合平鎮高中的錄取標準!\n"); } else if (totalScore >= 27) { printf("🎓 您符合陽明、永豐、大園等高中的錄取標準!\n"); } else { printf("⚠️ 目前未達錄取標準,請參考備取學校或技職方向。\n"); } return 0; } ``` ### HTML + JavaScript 程式(網頁互動版)桃園市公立高中職落點評估 ``` <!DOCTYPE html> <html lang="zh-Hant"> <head> <meta charset="UTF-8"> <title>桃園市 高中職落點評估系統</title> <style> body { font-family: '微軟正黑體', sans-serif; padding: 20px; background-color: #f9f9f9; } h1 { color: #2c3e50; } label { display: block; margin-top: 10px; } input, select { padding: 5px; margin-top: 5px; width: 150px; } button { margin-top: 20px; padding: 10px 20px; font-size: 16px; } #result { margin-top: 30px; padding: 15px; background-color: #eef; border-radius: 8px; } </style> </head> <body> <h1>🎓 桃園市高中職落點評估系統</h1> <form id="scoreForm"> <label>國文成績: <select id="chinese"> <option>A++</option><option>A+</option><option>A</option> <option>B++</option><option>B+</option><option>B</option><option>C</option> </select> </label> <label>數學成績: <select id="math"> <option>A++</option><option>A+</option><option>A</option> <option>B++</option><option>B+</option><option>B</option><option>C</option> </select> </label> <label>自然成績: <select id="science"> <option>A++</option><option>A+</option><option>A</option> <option>B++</option><option>B+</option><option>B</option><option>C</option> </select> </label> <label>社會成績: <select id="social"> <option>A++</option><option>A+</option><option>A</option> <option>B++</option><option>B+</option><option>B</option><option>C</option> </select> </label> <label>英文成績: <select id="english"> <option>A++</option><option>A+</option><option>A</option> <option>B++</option><option>B+</option><option>B</option><option>C</option> </select> </label> <label>作文級分(0~6): <input type="number" id="essay" min="0" max="6" required> </label> <button type="button" onclick="evaluate()">進行評估</button> </form> <div id="result"></div> <script> function gradeToPoints(grade) { switch (grade) { case "A++": return 7; case "A+": return 6; case "A": return 5; case "B++": return 4; case "B+": return 3; case "B": return 2; case "C": return 1; default: return 0; } } function essayScore(level) { level = parseInt(level); if (level <= 1) return level; if (level <= 3) return 2; return 3; } function evaluate() { const chinese = document.getElementById("chinese").value; const math = document.getElementById("math").value; const science = document.getElementById("science").value; const social = document.getElementById("social").value; const english = document.getElementById("english").value; const essay = document.getElementById("essay").value; let totalPoints = 0; totalPoints += gradeToPoints(chinese); totalPoints += gradeToPoints(math); totalPoints += gradeToPoints(science); totalPoints += gradeToPoints(social); totalPoints += gradeToPoints(english); const totalScore = totalPoints + essayScore(essay); let resultText = `🧮 總點數:${totalPoints}<br>`; resultText += `📝 總分(含作文):${totalScore}<br><br>`; if (totalScore >= 33) { resultText += "🎓 您符合 <b>武陵高中</b> 的錄取標準!"; } else if (totalScore >= 31) { resultText += "🎓 您符合 <b>中壢高中</b> 或 <b>桃園高中</b> 的錄取標準!"; } else if (totalScore >= 29) { resultText += "🎓 您符合 <b>平鎮高中</b> 的錄取標準!"; } else if (totalScore >= 27) { resultText += "🎓 您符合 <b>陽明、永豐、大園高中</b> 的錄取標準!"; } else { resultText += "⚠️ 尚未達錄取分數,請考慮其他學校或技職選項。"; } document.getElementById("result").innerHTML = resultText; } </script> </body> </html> ```