首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言經典程序開發實例集錦(三):猴子吃桃/乒乓球賽/菱形打印/分數序列/階乘和/遞歸應用/回文數判斷

     編輯:關於C語言

程序 21:猴子吃桃(逆向思維)


main() {
    int day=9, x1, x2=1;
    while(day>0) { x1=(x2+1)*2; x2=x1; day--; }
    printf("total=%d\n", x1);  // 1534
}

第 10 天剩 1 個,倒推第 1 天摘 1534 個。

程序 22:乒乓球隊對陣(窮舉+條件過濾)


main() {
    char i,j,k;  // a,b,c 的對手
    for(i='x';i<='z';i++)
    for(j='x';j<='z';j++)
    if(i!=j)
    for(k='x';k<='z';k++)
    if(i!=k && j!=k)
    if(i!='x' && k!='x' && k!='z')
        printf("a-%c b-%c c-%c\n", i,j,k);
// 輸出:a-z b-x c-y

程序 23:菱形打印(雙重循環分上下半部)


main() {
    int i,j,k;
    for(i=0;i<3;i++) {           // 上半部 3 行
        for(j=0;j<2-i;j++) printf(" ");
        for(k=0;k<2*i+1;k++) printf("*");
        printf("\n");
    }
    for(i=0;i<2;i++) {           // 下半部 2 行
        for(j=0;j

程序 24:分數序列求和(分子分母斐波那契遞推)


main() {
    int n, t, number=20;
    float a=2, b=1, s=0;
    for(n=1;n<=number;n++) {
        s += a/b;
        t=a; a=a+b; b=t;  // 關鍵:t 暫存舊分子
    }
    printf("sum=%9.6f\n", s);
}

程序 25:階乘累加和


main() {
    float n, s=0, t=1;
    for(n=1;n<=20;n++) { t*=n; s+=t; }
    printf("1+2!+...+20!=%e\n", s);
}

程序 26:遞歸求階乘


int fact(int j) {
    if(j==0) return 1;
    return j * fact(j-1);
}
main() { for(int i=0;i<5;i++) printf("%d!=%d\n", i, fact(i)); }

程序 27:遞歸逆序打印 5 字符


void palin(int n) {
    char next;
    if(n<=0) { next=getchar(); printf("\n"); putchar(next); }
    else { next=getchar(); palin(n-1); putchar(next); }
}
main() { palin(5); }  // 輸入 abcde → 輸出 edcba

程序 28:遞歸求年齡(5 人遞增 2 歲)


int age(int n) {
    if(n==1) return 10;
    return age(n-1) + 2;
}
main() { printf("%d\n", age(5)); }  // 18 歲

程序 29:數字分位與逆序(≤5 位)


main() {
    long a,b,c,d,e,x;
    scanf("%ld", &x);
    a=x/10000; b=x%10000/1000; c=x%1000/100; d=x%100/10; e=x%10;
    if(a) printf("5位: %ld%ld%ld%ld%ld\n",e,d,c,b,a);
    else if(b) printf("4位: %ld%ld%ld%ld\n",e,d,c,b);
    else if(c) printf("3位: %ld%ld%ld\n",e,d,c);
    else if(d) printf("2位: %ld%ld\n",e,d);
    else printf("1位: %ld\n",e);
}

程序 30:5 位數回文判斷


main() {
    long ge,shi,qian,wan,x;
    scanf("%ld", &x);
    wan=x/10000; qian=x%10000/1000; shi=x%100/10; ge=x%10;
    if(ge==wan && shi==qian) printf("回文數\n");
    else printf("非回文數\n");
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved