欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

12個(gè)C語言必背實(shí)例分享

 更新時(shí)間:2022年11月03日 10:15:55   作者:程序小圓圓  
這篇文章主要和大家介紹12個(gè)C語言中必背的實(shí)例,文中的示例代碼講解詳細(xì),對我們了解和掌握C語言有一定的幫助,感興趣的小伙伴快跟隨小編一起了解一下

1.十進(jìn)制數(shù)轉(zhuǎn)換二進(jìn)制數(shù)

實(shí)例代碼

//
 
#include "stdio.h"
 
int main(){
    int m, n, k;//定義變量
 
    int a[16] = { 0 };
    printf("請輸入一個(gè)0~32767之間的數(shù)字:\n");
    scanf("%d", &n);
    printf("十進(jìn)制數(shù)%d轉(zhuǎn)換為二進(jìn)制數(shù)是:\n", n);
    for (int i = 0; i < 15; ++i) {//for循環(huán)從0-14,最高位為符號(hào)位,本例始終為0
        m = n % 2;//取2的余數(shù)
        k = n / 2;//取被2整除的結(jié)果
        n = k;
        a[i] = m;//將余數(shù)存入數(shù)組a數(shù)組中
    }
 
    for (int i = 15; i >=0 ; i--) {//for循環(huán)將數(shù)組中的16個(gè)元素從后往前輸出
        printf("%d", a[i]);
        if (i % 4 == 0) {//每輸出4個(gè)元素,輸出一個(gè)空格
            printf(" ");
        }
    }
}

運(yùn)行結(jié)果:

程序分析

本實(shí)例比較簡單,而且注釋也比較詳細(xì),這里需要注意的是第二個(gè)for循環(huán)是從后往前輸出15~0,因?yàn)榈谝粋€(gè)for循環(huán)對2取余的結(jié)果存入數(shù)組時(shí)是從a[0]開始存儲(chǔ)的。

2.判斷某一年是否為閏年

實(shí)例代碼

//
// Created by 沖哥 on 2020/9/7.
//
 
#include "stdio.h"
 
int main(){
    int year;//定義整形變量year
    printf("請輸入要查詢的年份:\n");
    scanf("%d", &year);//從鍵盤輸入要查詢的年份
    if ((year % 4 == 0 && year % 100 !=0) || year % 400 == 0) {//判斷是否為閏年的條件
        printf("%d年這一年是閏年\n", year);
    } else {
        printf("%d年這一年不是閏年\n", year);
    }
}

運(yùn)行結(jié)果:

程序分析

今天分享的也是一個(gè)入門級(jí)實(shí)例,從鍵盤輸入一個(gè)表示年份的整數(shù),判斷該年份是否為閏年。該實(shí)例的要點(diǎn)就是判斷閏年的算法:(year % 4 == 0 && year % 100 !=0) || year % 400 == 0

3.使用*打印平行四邊形

實(shí)例代碼

//
 
#include "stdio.h"
 
int main(){
    char arr[5] = {'*','*','*','*','*'};
 
    for (int i = 0; i < 5; i++) {//輸出5行
        for (int j = 1; j <= i; j++) {
            printf(" ");//輸出空格的數(shù)量隨著行數(shù)的變化而變化
        }
        for (int k = 0; k < 5; k++) {
            printf("%c", arr[k]);//輸出數(shù)組中的元素
        }
        printf("\n");//輸出一行后換行
    }
}

運(yùn)行結(jié)果:

程序分析

本實(shí)例的要點(diǎn)就是理解三個(gè)for循環(huán)

第一個(gè)for循環(huán)控制整個(gè)圖形的行數(shù),本實(shí)例中的圖形共5行,所以i的范圍為0~4。

第二個(gè)for循環(huán)用來控制空格的數(shù)量。

第三個(gè)for循環(huán)用將數(shù)組a中的元素逐個(gè)輸出。

4.在控制臺(tái)打印出著名的楊輝三角

實(shí)例代碼

//
 
#include "stdio.h"
 
int main(){
    int a[8][8]={0};//初始化數(shù)組(本實(shí)例打印8行)
    for (int i = 0; i < 8; i++) {//for循環(huán)定義每行的第一個(gè)數(shù)和對角線上的數(shù),數(shù)值為1
        a[i][i] = 1;
        a[i][0] = 1;
    }
    for (int k = 2; k < 8; k++) {
        for (int j = 1; j < k; j++) {//用兩個(gè)for循環(huán)實(shí)現(xiàn)除對角線和每行第一個(gè)元素外其他元素的賦值
            a[k][j] = a[k-1][j-1] + a[k-1][j];
        }
    }
    for (int i = 0; i < 8; i++) {
        for (int j = 0; j <= i; j++) {//兩個(gè)for循環(huán)將數(shù)組a中的所有元素輸出
            printf("%d\t", a[i][j]);
        }
        printf("\n");
    }
}

程序分析

首先要分析楊輝三角的特點(diǎn),找出規(guī)律:

處理每行第一個(gè)數(shù)和對角線上的數(shù)都是1意外,其它的數(shù)就是前一行相鄰的兩數(shù)之和。找到這個(gè)規(guī)律,就可以很輕松的用for循環(huán)實(shí)現(xiàn)了。

5.實(shí)現(xiàn)投票統(tǒng)計(jì)功能

實(shí)例代碼

//實(shí)現(xiàn)功能:某次選舉,共有3個(gè)候選人,
//輸入?yún)⒓舆x舉的人數(shù)及每個(gè)人選舉的內(nèi)容,輸出3個(gè)候選人最終的得票數(shù)及無效選票數(shù)
//
 
#include "stdio.h"
 
int main(){
 
    int NO1 = 0;
    int NO2 = 0;
    int NO3 = 0;
    int b = 0;
    int n, a[50];
 
    printf("請輸入?yún)⒓舆x舉的人數(shù):\n");//最大50
    scanf("%d", &n);
    printf("請給候選人投票,1或2或3\n");
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }
    for (int i = 0; i < n; i++) {
        if (a[i] == 1) {
            NO1++;
        }
        else if (a[i] == 2) {
            NO2++;
        } else if (a[i] == 3) {
            NO3++;
        } else {
            b++;
        }
    }
    printf("投票結(jié)果如下:\n");
    printf("一號(hào)選手:%d票\n二號(hào)選手:%d票\n三號(hào)選手:%d票\n無效票數(shù):%d\n", NO1, NO2, NO3, b);
}

運(yùn)行結(jié)果:

程序分析

輸入?yún)⒓舆x舉的人數(shù),再輸入每個(gè)人的選舉內(nèi)容并將其存入數(shù)組中。對存入數(shù)組中的元素進(jìn)行判斷,統(tǒng)計(jì)出各個(gè)候選人的票數(shù)和無效的票數(shù)。

6.交換數(shù)組中最大數(shù)和最小數(shù)的位置

實(shí)例代碼

//
//實(shí)現(xiàn)功能:交換數(shù)組中最大數(shù)和最小數(shù)的位置
//
 
#include "stdio.h"
 
int main(){
    int a[10];
    int max, min;
    int m, n;
 
    printf("請輸入10個(gè)數(shù)字:\n");
    for (int i = 0; i < 10; i++) {
        scanf("%d", &a[i]);
    }
    printf("輸入的10個(gè)數(shù)是:\n");
    for (int i = 0; i < 10; i++) {
        printf("%4d", a[i]);
    }
    printf("\n");
    max = a[0];
    for (int i = 0; i < 10; i++) {
        if (a[i] > max) {
            max = a[i];
            m = i;
        }
    }
 
    min = a[0];
    for (int i = 0; i < 10; i++) {
        if (a[i] < min) {
            min = a[i];
            n = i;
        }
    }
 
    a[m] = min;
    a[n] = max;
 
    printf("交換最大數(shù)和最小數(shù)的位置后:\n");
    for (int i = 0; i < 10; i++) {
        printf("%4d", a[i]);
    }
}  //
// Created by 沖哥 on 2020/9/13.
//實(shí)現(xiàn)功能:交換數(shù)組中最大數(shù)和最小數(shù)的位置
//
 
#include "stdio.h"
 
int main(){
    int a[10];//定義數(shù)組
    int max, min;//定義最大值和最小值
    int m, n;//定義最大值和最小值的位置
 
    printf("請輸入10個(gè)數(shù)字:\n");
    for (int i = 0; i < 10; i++) {
        scanf("%d", &a[i]);
    }
    printf("輸入的10個(gè)數(shù)是:\n");
    for (int i = 0; i < 10; i++) {
        printf("%4d", a[i]);
    }
    printf("\n");
    max = a[0];
    for (int i = 0; i < 10; i++) {
        if (a[i] > max) {
            max = a[i];//找最大值
            m = i;
        }
    }
 
    min = a[0];
    for (int i = 0; i < 10; i++) {
        if (a[i] < min) {
            min = a[i];//找最小值
            n = i;
        }
    }
 
    a[m] = min;
    a[n] = max;
 
    printf("交換最大數(shù)和最小數(shù)的位置后:\n");
    for (int i = 0; i < 10; i++) {
        printf("%4d", a[i]);
    }
}//
// Created by 沖哥 on 2020/9/13.
//實(shí)現(xiàn)功能:交換數(shù)組中最大數(shù)和最小數(shù)的位置
//
 
#include "stdio.h"
 
int main(){
    int a[10];//定義數(shù)組
    int max, min;//定義最大值和最小值
    int m, n;//定義最大值和最小值的位置
 
    printf("請輸入10個(gè)數(shù)字:\n");
    for (int i = 0; i < 10; i++) {
        scanf("%d", &a[i]);
    }
    printf("輸入的10個(gè)數(shù)是:\n");
    for (int i = 0; i < 10; i++) {
        printf("%4d", a[i]);
    }
    printf("\n");
    max = a[0];
    for (int i = 0; i < 10; i++) {
        if (a[i] > max) {
            max = a[i];//找最大值
            m = i;
        }
    }
 
    min = a[0];
    for (int i = 0; i < 10; i++) {
        if (a[i] < min) {
            min = a[i];//找最小值
            n = i;
        }
    }
 
    a[m] = min;
    a[n] = max;
 
    printf("交換最大數(shù)和最小數(shù)的位置后:\n");
    for (int i = 0; i < 10; i++) {
        printf("%4d", a[i]);
    }
}

運(yùn)行結(jié)果:

程序分析

首先找到數(shù)組中的最大值和最小值,記錄它們的位置,然后交換位置,最后將交換后的數(shù)組輸出。

7.反轉(zhuǎn)字符串

實(shí)例代碼

//
//實(shí)現(xiàn)功能:輸入一個(gè)字符串,然后將該字符串反向輸出
//
 
#include "stdio.h"
#include "string.h"
 
#define N 50
 
void convert_str(char str[N]);
 
void convert_str(char str[N]){
    int j;
    char temp;
    for (int i = 0; i < strlen(str)/2; i++) {
        j = strlen(str) - 1;
        temp = str[i];
        str[i] = str[j - i];
        str[j - i] = temp;
    }
    printf("反向輸出:%s", str);
}
 
int main(){
    char str[N];
    printf("請輸入字符串:\n");
    gets_s(str, N);
    printf("輸入的字符串為:%s\n", str);
    convert_str(str);
}

運(yùn)行結(jié)果:

程序分析

注意:實(shí)例中有這樣一個(gè)語句j = strlen(str) - 1;這里j為什么是j = strlen(str) - 1;而不是strlen(str)呢?原因如下:如果數(shù)組s中含有10個(gè)元素,那么它的長度為10,而s的數(shù)組下標(biāo)從0開始那么下標(biāo)的最大值為9,j這里是代表數(shù)組下標(biāo),所以開始時(shí)的最大值應(yīng)是strlen(str)-1也就是9。

8.使用goto語句從循環(huán)中跳出

實(shí)例代碼

//
// Created by 沖哥 on 2020/9/15.
//實(shí)現(xiàn)功能:使用goto語句從循環(huán)中跳出
//
 
#include "stdio.h"
 
#define EXIT 0
 
void show_Menu(){
    printf("菜單選項(xiàng):\t");
    printf("1:顯示\t");
    printf("2:添加\t");
    printf("3:查詢\t");
    printf("4:刪除\t");
    printf("0:退出\n");
}
 
int main(){
    int num;
    show_Menu();
    for (int i = 1; i < 10; i++) {
        printf("第%d此循環(huán)\n", i);
        do {
            printf("請輸入菜單選項(xiàng):\n");
            scanf("%d", &num);
            if (num == EXIT){
                goto exit;
            }
            printf("****************菜單功能部分****************\n");
        } while (num < 4);
    }
exit:
    printf("程序退出!\n");
    return 0;
}

運(yùn)行結(jié)果:

程序分析

goto語句后面會(huì)有一個(gè)標(biāo)識(shí)符goto exit;當(dāng)程序滿足goto條件時(shí),程序就會(huì)直接跳轉(zhuǎn)到標(biāo)識(shí)符位置。

9.計(jì)算字符串中單詞的個(gè)數(shù)

實(shí)例代碼

//
//實(shí)現(xiàn)功能:計(jì)算字符串中單詞的個(gè)數(shù)
//
 
#include "stdio.h"
 
#define LEN 100
 
int main(){
    char str[LEN];
    int index;
    char blank;
    int words = 1;
 
    printf("請輸入字符串:\n");
    gets_s(str, LEN);
 
    if (str[0] == '\0') {
        printf("輸入的字符串為空\n");
    } else if (str[0] == ' ') {
        printf("輸入的字符串的第一個(gè)字符是空格\n");
    } else {
        for (int i = 0; str[i] != '\0'; ++i) {
            blank = str[i];
            if (blank == ' ') {
                words++;
            }
        }
        printf("輸入的字符串中有%d個(gè)單詞\n", words);
    }
}

運(yùn)行結(jié)果:

程序分析

用for循環(huán)遍歷字符數(shù)組,然后判斷是不是結(jié)尾\0,如果不是,就判斷是不是空格,是空格的話,單詞數(shù)加1.

10.控制臺(tái)打印系統(tǒng)的日期和時(shí)間

實(shí)例代碼

//
//實(shí)現(xiàn)功能:控制臺(tái)打印系統(tǒng)的日期和時(shí)間
//
 
#include "stdio.h"
#include "time.h"
 
int main(){
    struct tm *sysTime;//定義結(jié)構(gòu)體,用于存放日期和時(shí)間
    time_t sysDay;
    time(&sysDay);//獲取系統(tǒng)日期
    sysTime = localtime(&sysDay);//轉(zhuǎn)換為系統(tǒng)日期
    printf("系統(tǒng)日期:%d-%d-%d\n", 1900 + sysTime->tm_year, sysTime->tm_mon + 1, sysTime->tm_mday);
    printf("系統(tǒng)時(shí)間:%d:%d:%d\n", sysTime->tm_hour, sysTime->tm_min, sysTime->tm_sec);
    return 0;
}

運(yùn)行結(jié)果:

程序分析

本實(shí)例主要掌握系統(tǒng)日期和時(shí)間的獲取方法。

11.將3個(gè)數(shù)由大到小的順序輸出

實(shí)例代碼

//
//實(shí)現(xiàn)功能:輸入三個(gè)整數(shù),然后按由大到小的順序輸出
//
 
#include "stdio.h"
 
void swap(int *pa, int *pb){
    int temp;
    temp = *pa;
    *pa = *pb;
    *pb = temp;
}
 
void compare(int *pa, int *pb, int *pc){
    if (*pa < *pb) {
        swap(pa, pb);
    }
    if (*pa < *pc) {
        swap(pa, pc);
    }
    if (*pb, *pc) {
        swap(pb, pc);
    }
}
 
int main(){
    int a, b, c, *pa, *pb, *pc;
    printf("請輸入三個(gè)數(shù):\n");
    scanf("%d%d%d", &a, &b, &c);
    pa = &a;
    pb = &b;
    pc = &c;
    compare(pa, pb, pc);
    printf("%d\t%d\t%d\n", a, b, c);
    return 0;
}

運(yùn)行結(jié)果

程序分析

還記不記得之前講過的傳址和傳值,這里就用到了傳址。

12.模擬用戶名登陸

實(shí)例代碼

//
//實(shí)現(xiàn)功能:模擬用戶名登陸
 
#include "stdio.h"
#include "string.h"
 
int main(){
    char user_name[20] = {"zhangsan"};
    char password[7]={"123456"};
 
    char name[20], pwd[20];
    int i = 0;
    while (i < 3) {
        printf("請輸入用戶名:\n");
        gets_s(name, 20);
        printf("請輸入密碼:\n");
        gets_s(pwd, 7);
        if (strcmp(user_name, name) != 0) {
            printf("您好,您輸入的用戶名有誤!請重新輸入:\n");
        } else {
            if (strcmp(password, pwd) != 0) {
                printf("您好,您輸入的密碼有誤!請重新輸入:\n");
            } else {
                printf("歡迎使用!\n");
                break;
            }
        }
        i++;
    }
    if (i == 3) {
        printf("輸入錯(cuò)誤已達(dá)3次,賬號(hào)被鎖定!\n");
    }
}

運(yùn)行結(jié)果

正常系

D:\Users\source\C\Test0823\cmake-build-debug\Test0823.exe
請輸入用戶名:
zhangsan
請輸入密碼:
123456
歡迎使用!
 
Process finished with exit code 0

異常系

D:\Users\source\C\Test0823\cmake-build-debug\Test0823.exe
請輸入用戶名:
zhang
請輸入密碼:
123456
您好,您輸入的用戶名有誤!請重新輸入:
請輸入用戶名:
zhangsan
請輸入密碼:
1234
您好,您輸入的密碼有誤!請重新輸入:
請輸入用戶名:
zhangs
請輸入密碼:
123
您好,您輸入的用戶名有誤!請重新輸入:
輸入錯(cuò)誤已達(dá)3次,賬號(hào)被鎖定!
 
Process finished with exit code 0

程序分析

本實(shí)例中使用到了字符串的比較函數(shù)strcmp(str1, str2);,這個(gè)函數(shù)的功能是按照ASCII碼順序比較兩個(gè)字符串,并由返回值返回比較結(jié)果。

str1 = str2 返回值為0

str1 > str2 返回值大于0

str1 < str2 返回值小于0

到此這篇關(guān)于12個(gè)C語言必背實(shí)例分享的文章就介紹到這了,更多相關(guān)C語言實(shí)例內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C/C++ProtoBuf使用小結(jié)

    C/C++ProtoBuf使用小結(jié)

    ProtoBuf全稱:protocol buffers,直譯過來是:“協(xié)議緩沖區(qū)”,是一種與語言無關(guān)、與平臺(tái)無關(guān)的可擴(kuò)展機(jī)制,用于序列化結(jié)構(gòu)化數(shù)據(jù),這篇文章主要介紹了C/C++ProtoBuf使用,需要的朋友可以參考下
    2024-01-01
  • C++語法詳解之封裝、構(gòu)造函數(shù)、析構(gòu)函數(shù)

    C++語法詳解之封裝、構(gòu)造函數(shù)、析構(gòu)函數(shù)

    這篇文章主要介紹了C++語法詳解之封裝、構(gòu)造函數(shù)、析構(gòu)函數(shù)的相關(guān)知識(shí),通過實(shí)例代碼給大家詳細(xì)介紹,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • C++ 實(shí)現(xiàn)靜態(tài)鏈表的簡單實(shí)例

    C++ 實(shí)現(xiàn)靜態(tài)鏈表的簡單實(shí)例

    這篇文章主要介紹了C++ 實(shí)現(xiàn)靜態(tài)鏈表的簡單實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • c語言快速排序算法示例代碼分享

    c語言快速排序算法示例代碼分享

    快速排序使用分治法(Divide and conquer)策略來把一個(gè)串行(list)分為兩個(gè)子串行(sub-lists)
    2014-02-02
  • 利用C語言如何實(shí)現(xiàn)一些簡單圖形的打印

    利用C語言如何實(shí)現(xiàn)一些簡單圖形的打印

    這篇文章主要給大家介紹了關(guān)于利用C語言如何實(shí)現(xiàn)一些簡單圖形的打印的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • C語言詳解實(shí)現(xiàn)猜數(shù)字游戲步驟

    C語言詳解實(shí)現(xiàn)猜數(shù)字游戲步驟

    猜數(shù)字是興起于英國的益智類小游戲,起源于20世紀(jì)中期,一般由兩個(gè)人或多人玩,也可以由一個(gè)人和電腦玩。游戲規(guī)則為一方出數(shù)字,一方猜,今天我們來實(shí)現(xiàn)這個(gè)游戲案例
    2022-07-07
  • 教你分辨C++堆與棧的區(qū)別

    教你分辨C++堆與棧的區(qū)別

    堆與棧的區(qū)別有:1、棧由系統(tǒng)自動(dòng)分配,而堆是人為申請開辟;2、棧獲得的空間較小,而堆獲得的空間較大;3、棧由系統(tǒng)自動(dòng)分配,速度較快,而堆一般速度比較慢;4、棧是連續(xù)的空間,而堆是不連續(xù)的空間
    2021-06-06
  • QT樹的具體項(xiàng)目實(shí)現(xiàn)

    QT樹的具體項(xiàng)目實(shí)現(xiàn)

    本文主要介紹了QT樹的具體項(xiàng)目實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 內(nèi)部排序之堆排序的實(shí)現(xiàn)詳解

    內(nèi)部排序之堆排序的實(shí)現(xiàn)詳解

    本篇文章是對堆排序的實(shí)現(xiàn)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言中儲(chǔ)存類別與內(nèi)存管理的深入理解

    C語言中儲(chǔ)存類別與內(nèi)存管理的深入理解

    這篇文章主要給大家介紹了關(guān)于C語言中儲(chǔ)存類別與內(nèi)存管理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評(píng)論