8個基礎且實用的C語言經典實例【附源碼】

2021-02-20 C語言中文社區
1、輸出9*9口訣。共9行9列,i控制行,j控制列。
//
// Created by 衝哥 on 2020/12/29.
//
#include "stdio.h"

int main() {
    int i, j, result;

    for (i = 1; i < 10; i++) {
        for (j = 1; j <= i; j++) {
            result = i * j;
            printf("%d*%d=%-4d", i, j, result);
        }
        printf("\n");
    }
    return 0;
}

2、古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?
//
// Created by 衝哥 on 2020/12/29.
//
#include "stdio.h"

int main() {

    long f1, f2;
    int i;
    f1 = f2 = 1;

    for (i = 1; i <= 20; i++) {
        printf("%12ld %12ld", f1, f2);

        if (i % 2 == 0) printf("\n");/*控制輸出,每行四個*/

        f1 = f1 + f2; /*前兩個月加起來賦值給第三個月*/

        f2 = f1 + f2; /*前兩個月加起來賦值給第三個月*/
    }
    return 0;
}

3、判斷101-200之間有多少個素數,並輸出所有素數及素數的個數。

程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。

//
// Created by 衝哥 on 2020/12/29.
//
#include "stdio.h"
#include "math.h"

int main() {

    int m, i, k, h = 0, leap = 1;
    printf("\n");

    for (m = 101; m <= 200; m++) {
        k = sqrt(m + 1);
        for (i = 2; i <= k; i++)
            if (m % i == 0) {
                leap = 0;
                break;
            }
        if (leap) /*內循環結束後,leap依然為1,則m是素數*/
        {
            printf("%-4d", m);
            h++;
            if (h % 10 == 0)
                printf("\n");
        }
        leap = 1;
    }
    printf("\nThe total is %d", h);
    return 0;
}

4、個數如果恰好等於它的因子之和,這個數就稱為"完數"。例如6=1+2+3.編程找出1000以內的所有完數。
//
// Created by 衝哥 on 2020/12/29.
//
#include "stdio.h"

int main() {
    static int k[10];
    int i, j, n, s;
    for (j = 2; j < 1000; j++) {
        n = -1;
        s = j;
        for (i = 1; i < j; i++) {
            if ((j % i) == 0) {
                n++;
                s = s - i;
                k[n] = i;
            }
        }
        if (s == 0) {
            printf("%d is a 完數: ", j);
            for (i = 0; i < n; i++)
                printf("%d,", k[i]);
            printf("%d\n", k[n]);
        }
    }
    return 0;
}

5、編程列印直角楊輝三角形
//
// Created by 衝哥 on 2020/12/29.
//
#include "stdio.h"

int main() {
    int i, j, a[6][6];

    for (i = 0; i <= 5; i++) {
        a[i][i] = 1;
        a[i][0] = 1;
    }

    for (i = 2; i <= 5; i++)

        for (j = 1; j <= i - 1; j++)

            a[i][j] = a[i - 1][j] + a[i - 1][j - 1];

    for (i = 0; i <= 5; i++) {
        for (j = 0; j <= i; j++)

            printf("%4d", a[i][j]);

        printf("\n");
    }
    return 0;
}

6、將輸入的字符串反序輸出
//
// Created by 衝哥 on 2020/12/29.
//
#include "stdio.h"
#include <string.h>

int main() {
    char c[200], c1;
    int i, j, k;
    printf("Enter a string: ");
    scanf("%s", c);
    k = strlen(c);

    for (i = 0, j = k - 1; i < k / 2; i++, j--) {
        c1 = c[i];
        c[i] = c[j];
        c[j] = c1;
    }
    printf("%s\n", c);
    return 0;
}

7、在一個字串s1中查找一子串s2,若存在則返回子串在主串中的起始位置,不存在則返回-1。
//
// Created by 衝哥 on 2020/12/29.
//
#include "stdio.h"
#include <string.h>

int main() {
    char s1[6] = "thisis";
    char s2[5] = "is";

    printf("%d\n", search(s1, s2));
    return 0;
}

int search(char s1[], char s2[]) {
    int i = 0, j, len = strlen(s2);

    while (s1[i]) {
        for (j = 0; j < len; j++)
            if (s1[i + j] != s2[j]) break;
        if (j >= len)return i;
        else i++;
    }
    return -1;
}

8、輸入一個字符串,判斷其是否為回文。回文字符串是指從左到右讀和從右到左讀完全相同的字符串。
//
// Created by 衝哥 on 2020/12/29.
//
#include <stdio.h>
#include <string.h>
#include<string.h>

int main() {
    char s[100];
    int i, j, n;

    printf("輸入字符串:\n");
    gets(s);
    n = strlen(s);
    for (i = 0, j = n - 1; i < j; i++, j--)
        if (s[i] != s[j]) break;
    if (i >= j) printf("是回文串\n");

    else printf("不是回文串\n");
    return 0;
}

8、用指針變量輸出結構體數組元素。
//
// Created by 衝哥 on 2020/12/29.
//
#include <stdio.h>

struct student {
    int num;//學號
    char *name;//姓名
    char sex;//性別
    int age;//年齡

} stu[5] = {{1001, "張三",    'F', 18},
            {1002, "李四",  'M', 28},
            {1003, "王五",  'F', 34},
            {1004, "趙六", 'F', 25},
            {1005, "前七", 'M', 19}};

int main() {
    int i;
    struct student *ps;
    printf("Num \tName\t\t\tSex\tAge\t\n");

    //用指針變量輸出結構體數組元素。
    for (ps = stu; ps < stu + 5; ps++)
        printf("%d\t%-10s\t\t%c\t%d\t\n", ps->num, ps->name, ps->sex, ps->age);
    printf("************************************\n");
    //用數組下標法輸出結構體數組元素學號和年齡。
    for (i = 0; i < 5; i++)

        printf("%d\t%d\t\n", stu[i].num, stu[i].age);
    return 0;
}

相關焦點

  • C語言入門必備的18個經典程序
    古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?("\n");/*控制輸出,每行四個*/ f1=f1+f2; /*前兩個月加起來賦值給第三個月*/ f2=f1+f2; /*前兩個月加起來賦值給第三個月*/ }}運行結果:
  • 看了這幾個C語言例子,你一定和我一樣連說5個臥槽...
    = c; f[b++] = a/5);    for(; d=0,g=c*2,c>5000; c--,printf("%.4d",e+d/a),e=d%a)    for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);     } 執行結果:
  • 【必讀乾貨】5個讓人驚呼「臥槽」的C語言例子,你一定不能錯過
    = c; f[b++] = a/5);    for(; d=0,g=c*2,c>5000; c--,printf("%.4d",e+d/a),e=d%a)    for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);     } 執行結果:
  • 4周學習超經典書籍《C程序設計語言》
    最好的讀書方式或許是:認真閱讀書籍,遇到示例代碼或者不明白的地方馬上實踐操作,最後如果能寫個讀書筆記當然是更好的,如果在閱讀書籍的過程中有老師、技術大牛引導或者解答疑問,有小夥伴一起閱讀互相討論就再好不過了。這可能是比較費時的一種閱讀方式,但不可否認這是效果最好的一種方式,特別是對於一些經典的書籍來說非常值得這樣子閱讀。
  • 作為入門基礎的C語言,怎麼自學?
    作為一門基礎語言,想學習編程卻又沒有基礎的朋友,C語言可以成為你入門打基礎的語言之一!那麼我們要怎麼學習它,打下堅實編程基礎呢?自學的話又要多久?編程學習是一條漫長路,哪怕是編程的大神,也不敢百分百保證不出問題,即便他們的技術已經是行業頂尖水平,仍然也在不斷的學習創新,所以作為小白新手,既然準備跨入編程的世界,那就要有一定的覺悟!
  • C語言必背18個經典程序
    ,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?兔子的規律為數列1,1,2,3,5,8,13,21....f2=f1+f2; /*前兩個月加起來賦值給第三個月*/ }}3、/*判斷101-200之間有多少個素數,並輸出所有素數及素數的個數。
  • 看了這幾個C語言例子,你一定和我一樣連說5個臥槽,聲音一次比一次大
    = c; f[b++] = a/5);    for(; d=0,g=c*2,c>5000; c--,printf("%.4d",e+d/a),e=d%a)    for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);     } 執行結果:例2
  • 學習c語言筆記——C庫函數printf()
    c語言中的printf是什麼來的?」。我答:「它是一個函數,主要用來輸出運算結果。」 ,下面就給大家介紹C庫函數printf()使用方法。下面我們通過一個調用c庫函數的c語言案例來說明printf()函數的使用方法,如c語言1。
  • 一個資深C語言工程師說如何學習C語言
    歡喜的是,C語言功能非常強大、應用廣泛,一旦掌握了後,你就可以理直氣壯地對他人說「我是電腦高手!」,而且以後若是再自學其他語言就顯得輕而易舉了。憂慮的是,C語言猶如「少林武功」一般博大精深,太難學了。其實就筆者認為C語言並非是「difficult(困難)」的,只要你能理清思路,掌握它的精髓,那麼自學C語言是一件非常容易且又其樂無窮的事。
  • C 語言程序設計---入門篇
    從本篇文章開始,我將分享 C 系列,將 C 語言的方方面面,從最基礎的語法帶領大家入門
  • 一直以為自己C學的挺好:直到看了這幾個C代碼,連聲說出「臥槽」
    = c; f[b++] = a/5);    for(; d=0,g=c*2,c>5000; c--,printf("%.4d",e+d/a),e=d%a)    for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);     }  執行結果: 例2 模擬圖靈機列印基為2的斐波納契數
  • 怎樣學習C語言(獻給迷茫的C愛好者)!
    在我的公司裡,高手的鍵盤響個不停,滑鼠偶爾響一下,新手是滑鼠響個不停,鍵盤偶爾響一下,他們的薪水相差的就不是一倍那麼多了!」     C語言是各大作業系統的基礎,Unix、Linux、Windows其內核都清一色是C語言開發的,(某些地方是和彙編語言混合開發的),君不見Windows API都是C語言函數的接口?
  • 如果是初學C語言請看完,如何學好C語言絕對精品
    在我的公司裡,高手的鍵盤響個不停,滑鼠偶爾響一下,新手是滑鼠響個不停,鍵盤偶爾響一下,他們的薪水相差的就不是一倍那麼多了!」C語言是各大作業系統的基礎,Unix、Linux、Windows其內核都清一色是C語言開發的,(某些地方是和彙編語言混合開發的),君不見Windows API都是C語言函數的接口?
  • 經典C語言程序設計100例 (80~100)
    第二隻猴子把剩下的桃子又平均分成五份,又多了一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五隻猴子都是這樣做的,問海灘上原來最少有多少個桃子?代表的兩位數,8*??的結果為兩位數,9*??的結果為3位數。求??代表的兩位數,及809*??後的結果。
  • C語言學習基礎必會
    C語言學習目標:將C語言簡單概述一下我將把我學到的知識和自己的理解以自己的話說出來。可能有很多問題邏輯也不是那麼的完整。
  • C語言太簡單?這14道C語言謎題,你能答對幾個?
    本文展示了14個C語言的迷題以及答案,代碼應該是足夠清楚的,而且有相當的一些例子可能是我們日常工作可能會見得到的。
  • C語言入門必備書籍
    1.C語言入門經典
  • C 語言實例 - 判斷迴文數
    例如,若n=1234321,則稱n為一迴文數;但若n=1234567,則n不是迴文數實例#include <stdio.h> int main(){    int n, reversedInteger = 0, remainder, originalInteger;    printf("輸入一個整數: ");        scanf("%d
  • 【C語言程序設計】C語言統計單詞個數,單詞個數算法
    似乎在這裡遇到了障礙,可是,如果換個角度思考問題,也許會柳暗花明又一村:文章中的單詞都是用空格間隔開的,換句話說,單詞數=空格數+1。程序不認識單詞,但是程序認識空格啊!這樣,整個問題實際上轉換成了統計文章中的空格數。有了這樣的問題轉換思路,整個問題就簡單多了。可以先按照這個思路自己實現,也可以直接看下面的代碼實現。
  • C語言系列之sizeof
    造成這個情況的原因大概率是由於久坐且長期沒有運動有關,所以打算減肥。這兩天沒有打卡記錄,一方面是學習的東西比較零散,沒辦法成體系的輸出,另一方面是生活也是和之前一樣,沒有太多有趣的事情可以記錄。今天主要是整理了一份C語言學習筆記,關於數據類型方面的。