Download presentation
Presentation is loading. Please wait.
Published byἈλεξανδρεύς Αυγερινός Modified 5年之前
1
1. 說明一個一維整數陣列passwd,下標範圍0至49 2. 在屏幕顯示 "Enter password"
1995 Q1b 1. 說明一個一維整數陣列passwd,下標範圍0至49 2. 在屏幕顯示 "Enter password" 3. 設陣列下標變量k的初始值為0. 4. 當k<50時,執行下列各項. 接受一鍵入的字符ch,並把它貯於一變量中 把passwd的第k個元素(passwdk) 賦值為該鍵入字符ch的ASCII碼 把k加1 5. 設整數變量pin的初始值為0 6. 用以下公式計算pin的值. pin = 1*passwd0 + 2*passwd1 + … + 50*passwd49 7. 輸出pin 2018年12月31日 Algorithm 算法 (C)
2
#include <stdio.h> main(){ int passwd[50], k=0, pin=0; char ch;
printf("Enter password: "); while(k<50){ scanf("%c", &ch); passwd[k]=ch; k++; } for(k=0; k<50; k++) pin += (k+1)*passwd[k]; printf("%i\n", pin); 2018年12月31日 Algorithm 算法 (C)
3
1996 Q1b 1. 說明fp 為文本文件。 2. 說明cnt為整數變量。 3. 說明ch 為字符變量。 4. 設定cnt為零。
5. 將fp與磁盤文件名data96.txt聯繫。 6. 準備fp,以讀取資料。 7. 在未達至文件結尾時,執行以下工作. 從fp讀取一字符,並放置於ch內. 如ch='a' 或 'A' ,則將cnt增加1。 8. 顯示cnt。 9. 關閉文件fp。 2018年12月31日 Algorithm 算法 (C)
4
#include <stdio.h> main(){ FILE *fp; int cnt=0; char ch;
fp = fopen("data96.txt","r"); while(!feof(fp)){ ch=fgetc(fp); if(toupper(ch)=='A') cnt++; } printf("%i\n", cnt); fclose(fp); 2018年12月31日 Algorithm 算法 (C)
5
1997 Q1b 1. 說明x、y、d及gcd為整數變量。 2. 讀取兩整數並將它們分別貯存於x及y。 3. 把1賦予變量d。
則 把y的值賦予變量x, 把d的值賦予變量y, 否則 把x的值賦予變量y, 把d的值賦予變量x, 7. 若x>y, 則 把x的值賦予變量gcd, 否則 把y的值賦予變量gcd。 8. 顯示gcd的值。 2018年12月31日 Algorithm 算法 (C)
6
#include <stdio.h> #include <stdlib.h> main(){
int x, y, d, gcd; do{ printf("Enter 2 positive numbers: "); scanf("%d%d", &x, &y); d=1; while(d!=0){ d=abs(x-y); if(x>y){ x=y; y=d; }else{ y=x; x=d; } if(x>y) gcd=x; else gcd=y; printf("gcd = %d\n", gcd); } while(1); 2018年12月31日 Algorithm 算法 (C)
7
1. 說明mnum、x、y、sum、cnt為整數變量。 2. 讀入一會員卡號碼並貯存至 mnum中。 3. 將mnum 的值賦與 x。
1998 Q1b 1. 說明mnum、x、y、sum、cnt為整數變量。 2. 讀入一會員卡號碼並貯存至 mnum中。 3. 將mnum 的值賦與 x。 4. 將0賦與sum。 5. 將1賦與cnt。 6. 當cnt<6時,重複步驟7至10. 7. 將 (x10)*10 的值賦與y。 8. 將 (sum+xy) 的值賦與sum。 9. 將 (y10) 的值賦與x。 10. 將 cnt 的值加1。 11. 若sum 可被10整除, 則 顯示 "Valid number", 否則 顯示 "Invalid number". 2018年12月31日 Algorithm 算法 (C)
8
#include <stdio.h> main(){ int mNum, x, y, sum, cnt; do{
printf("Q: Membership card no. (5-digit): "); scanf("%d", &mNum); x = mNum; // e.g sum = 0; cnt = 1; while(cnt<6){ y = (x/10)*10; // 12340 sum += x-y; // sum += x%10; x = y/10; cnt++; } printf("Sum = %d\n", sum); if(sum%10==0) printf("Valid Number\n"); else printf("Invalid Number\n"); }while(mNum!=999); 2018年12月31日 Algorithm 算法 (C)
9
1. 說明p、repay、i為實數變量,n、flag為整數變量。 2. 分別把借款額、每月還款額、月息率讀入變量p、repay、i中。
1999 Q1b 1. 說明p、repay、i為實數變量,n、flag為整數變量。 2. 分別把借款額、每月還款額、月息率讀入變量p、repay、i中。 3. 把還款期數變量n初始化為0。 4. 把flag初始化為0。 5. 當flag=0,重複步驟5至7。 6. 把p之值加上p*i。 7. 若p不大於repay,則賦值1予flag, 否則 (i) 從p中減去repay;及 (ii) 把n之值加1。 8. 顯示還款期數n+1。 2018年12月31日 Algorithm 算法 (C)
10
#include <stdio.h> main(){ float p, repay, i; int n, flag;
printf("借款額、每月還款額、月息率: "); scanf("%f%f%f", &p, &repay, &i); n=flag=0; while (flag==0){ p += p*i; if(p<=repay) flag=1; else{ p -= repay; n++; } printf("還款期數=%i\n",n+1); 2018年12月31日 Algorithm 算法 (C)
11
pitem為字符變量,complete為布爾變量(0,1), 而subtotal為一元整數陣列,其大小為 3。
2000 Q1b 1. 說明 total, i, qty為整數變量, pitem為字符變量,complete為布爾變量(0,1), 而subtotal為一元整數陣列,其大小為 3。 2. 把陣列subtotal初始化為 0, total初始化為 0; 而complete初始化為 false(0)。 3. 當complete為false(0),重複步驟4至9。 4. 讀入貨品種類(A-E)至pitem。 5. 若pitem='Q',則賦值true(1)予complete; 6. 否則 讀入顧客購買該貨品的數量至qty。 7. 當qty的輸入值不在1至10間 (包括1和10),重複步驟6。 8. 依pitem的類別,將subtotal的對應元素增加qty。 9. 將total的值增加qty。 10. 顯示total和subtotal陣列。 一小型雜貨店只售賣A、B、C、D和E五種貨品。 這五種貨品可分為三個類別。 A、B和C屬於第1類,D屬於第2類,而E則屬於第3類。 當顧客到櫃位付款時,收銀員的電腦會執行一程序 來計算顧客購物的總數和每類別貨物的小計。 2018年12月31日 Algorithm 算法 (C)
12
int subtotal[3], total=0, i, qty, complete=0;
char pItem; for(i=0;i<3;i++) subtotal[i]=0; while(!complete){ printf ("Enter item (A..E): "); scanf("%c", &pItem); complete = (pItem=='Q'); if(!complete){ do{ printf ("Enter quantity (1-10) for item %c: ", pItem); scanf("%d", &qty); }while (qty<=0 || qty>10); switch(pItem){ case 'A': case 'B': case 'C': subtotal[0] += qty; break; case 'D': subtotal[1] += qty; break; case 'E': subtotal[2] += qty; break; } total += qty; printf("Total sum = %d\n", total); for(i=0;i<3;i++) printf ("sub-total[%d] = %d\n", i,subtotal[i]);
13
1. 說明denary、remainder、i 為整數變量,而binary為字符串變量。 2. 讀入十進數至變量denary。
2001 Q7 修改 1. 說明denary、remainder、i 為整數變量,而binary為字符串變量。 2. 讀入十進數至變量denary。 3. 賦值「空字符串」予變量binary。 4. 只要denary>0,重複步驟5至8. 5. 賦值denary%2予變量 remainder。 6. 賦值denary2 予變量 denary。 7. 將變量remainder 轉換成字元, 8. 並順序將字元加到字串變量binary。 9. 反序顯示變量binary所貯存的值。 2018年12月31日 Algorithm 算法 (C)
14
int denary, remainder, i; char binary[20]; while(1){
printf("Q:十進數: "); scanf("%d", &denary); binary[0] = '\0'; i=0; while(denary>0){ remainder = denary%2; denary /= 2; binary[i]=remainder+'0'; i++; } binary[i] = '\0'; printf("A:二進數 = "); for(i=strlen(binary)-1; i>=0; i--) printf("%c", binary[i]); printf("\n\n"); 2018年12月31日 Algorithm 算法 (C)
15
1. 說明former(前者)、latter(後者)、limit(限度) 和 cnt 為整數變量 2. 讀入一整數至變量limit
2002 Q7 1. 說明former(前者)、latter(後者)、limit(限度) 和 cnt 為整數變量 2. 讀入一整數至變量limit 3. 賦值1 予變量former 4. 賦值1 予變量latter 5. 賦值0 予變量cnt 6. 只要變量former limit 的值,重複步驟7 至11 7. 顯示變量former 的值, 並保持游標在同一行 8. 將變量latter 的值加上變量former 的值, 並將結果賦值予變量latter 9. 將變量latter 的值減去變量former 的值, 並將結果賦值予變量former 10. 把變量cnt 的值加1 11. 若變量cnt 的值能為6所整除, 則將游標下移一行 2018年12月31日 Algorithm 算法 (C)
16
int former, latter, limit ,cnt; printf("Enter limit: ");
main(){ int former, latter, limit ,cnt; printf("Enter limit: "); scanf("%d", &limit); former = latter = 1; cnt = 0; printf("Fibonacci sequence ...\n"); while(former<=limit){ printf("%d\t", former); latter += former; former = latter - former; cnt++; if(cnt%6==0) printf("\n"); } printf("\n"); 2018年12月31日 Algorithm 算法 (C)
17
1. 說明num, count, lower和upper為整數變量。 2. 讀入兩個整數至變量lower和變量upper,分別代表下限和上限
2003 Q8 1. 說明num, count, lower和upper為整數變量。 2. 讀入兩個整數至變量lower和變量upper,分別代表下限和上限 3. 賦變量lower的值予變量num。 4. 當變量num upper的值,執行步驟5至9 5. 賦值2予變量count。 6. 當變量num的值不能為變量count的值整除,執行步驟7 7. 將變量count的值加1。 8. 若變量num=count,顯示變量num的值 9. 把變量num的值加1。 2018年12月31日 Algorithm 算法 (C)
18
int num, divisor, lower, upper;
main(){ int num, divisor, lower, upper; printf("Q: Lower(>1) & Upper limits : "); scanf ("%d %d", &lower, &upper); if(lower<2) lower=2; num = lower; while(num<=upper){ divisor=2; while(num%divisor>0) divisor++; if(num==divisor) printf("\t%d",num); num++; } printf("\n"); 2018年12月31日 Algorithm 算法 (C)
19
下列算法計算此表達式. ½(f1+2f2+...+2fn-1+fn) 1. 說明i和n為整數變量。 說明f和result為實數變量。
2004 Q8 下列算法計算此表達式. ½(f1+2f fn-1+fn) 1. 說明i和n為整數變量。 說明f和result為實數變量。 2. 初始化i為1。 初始化result為0。 3. 讀入一個整數至變量n。 4. 當變量in,執行步驟5至7。 5. 讀入一個實數至變量f。 6. 若變量i≠1和i≠n, 將變量result的值加上變量f兩倍的值 否則將變量result的值加上變量f的值。 7. 將變量i的值加1。 8. 將變量result的值除以2。 9. 顯示變量result的值。 n和fi (i=1,2,3,...,n) 的值在執行這個程序時,透過鍵盤順序輸入。 2018年12月31日 Algorithm 算法 (C)
20
printf("Result = %.2f\n",result);
main(){ int n, i=1; float f, result=0; printf("輸入多少個數 (n): "); scanf("%d", &n); while(i<=n){ printf("輸入實數 (f): "); scanf("%f",&f); if(i!=1 && i!=n) result += 2*f; else result += f; i++; } result/=2; printf("Result = %.2f\n",result); 2018年12月31日 Algorithm 算法 (C)
Similar presentations