当前位置:首页 > 技术知识 > 正文内容

有趣的6个经典C语言代码案例欣赏_c语言趣味编程100例

maynowei6个月前 (09-04)技术知识52

1."Hello, World!" 代码

这是 C 语言中最基础的一个程序,打印出 "Hello, World!"。

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

运行结果:

Hello, World!

2.猜数字游戏

这个程序会随机生成一个数字,然后提示用户输入一个数字,如果输入的数字与随机生成的数字相同,则输出 "猜对了!",否则提示用户继续输入。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int num, guess;
    srand(time(0));
    num = rand() % 100 + 1;
    do {
        printf("请输入一个数字(1-100):");
        scanf("%d", &guess);
        if (guess > num) {
            printf("太大了!\n");
        } else if (guess < num) {
            printf("太小了!\n");
        }
    } while (guess != num);
    printf("猜对了!\n");
    return 0;
}

运行结果:

请输入一个数字(1-100):50
太大了!
请输入一个数字(1-100):25
太小了!
请输入一个数字(1-100):37
太小了!
请输入一个数字(1-100):44
太大了!
请输入一个数字(1-100):41
太大了!
请输入一个数字(1-100):38
猜对了!

3.冒泡排序

这是一个经典的排序算法,将数组中的元素按升序排列。

#include <stdio.h>

void bubble_sort(int arr[], int n) {
    int i, j, temp;
    for (i = 0; i < n - 1; i++) {
        for (j = 0; j < n - i - 1; j++) {
            if (arr[j] > arr[j+1]) {
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}

int main() {
    int arr[] = {64, 34, 25, 12, 22, 11, 90};
    int n = sizeof(arr) / sizeof(arr[0]);
    bubble_sort(arr, n);
    printf("排序后的数组:\n");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
    return 0;
}

运行结果:

排序后的数组:
11 12 22 25 34 64 90


4. 判断一个数是否是质数

这个程序会提示用户输入一个正整数,然后判断它是否是质数。

#include <stdio.h>

int is_prime(int n) {
    if (n <= 1) {
        return 0;
    }
    for (int i = 2; i * i <= n; i++) {
        if (n % i == 0) {
            return 0;
        }
    }
    return 1;
}

int main() {
    int n;
    printf("请输入一个正整数:");
    scanf("%d", &n);
    if (is_prime(n)) {
        printf("%d 是质数!\n", n);
    } else {
        printf("%d 不是质数!\n", n);
    }
    return 0;
}

运行结果:

请输入一个正整数:37
37 是质数!

5.模拟掷骰子

这个程序会模拟掷两个骰子,然后输出它们的点数之和。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int roll_dice() {
    return rand() % 6 + 1;
}

int main() {
    int dice1, dice2, sum;
    srand(time(0));
    dice1 = roll_dice();
    dice2 = roll_dice();
    sum = dice1 + dice2;
    printf("你掷的两个骰子点数分别为 %d 和 %d,点数之和为 %d\n", dice1, dice2, sum);
    return 0;
}

运行结果:

你掷的两个骰子点数分别为 5 和 2,点数之和为 7

6.字符串反转

这个程序会反转一个字符串。

#include <stdio.h>
#include <string.h>

void reverse(char str[]) {
    int i, j;
    char temp;
    for (i = 0, j = strlen(str) - 1; i < j; i++, j--) {
        temp = str[i];
        str[i] = str[j];
        str[j] = temp;
    }
}

int main() {
    char str[] = "Hello, World!";
    printf("反转前的字符串:%s\n", str);
    reverse(str);
    printf("反转后的字符串:%s\n", str);
    return 0;
}

运行结果:

反转前的字符串:Hello, World!
反转后的字符串:!dlroW ,olleH

相关文章

机器人需求驱动导航新SOTA,成功率提升15%!浙大&amp;vivo联手打造

CogDDN团队 投稿量子位|公众号QbitAI让机器人像人一样边看边理解,来自浙江大学和vivo人工智能实验室的研究团队带来了新进展。正如视频所展示的,机器人在复杂的室内环境中不仅能自主探索,还具备...

Android之自定义ListView(一)(android 自定义view绘制流程)

PS:自定义View是Android中高手进阶的路线.因此我也打算一步一步的学习.看了鸿洋和郭霖这两位大牛的博客,决定一步一步的学习,循序渐进.学习内容:1.自定义View实现ListView的Ite...

Xamarin.Android使用教程:列表视图和适配器(2)

昨天我们已经一起学习了第1部分,这是探索Xamarin.Android的列表视图和适配器的的第2部分。在今天的文章中我们将探讨列表视图项排列使用BaseAdapter,还有自定义布局。让我们深入到代码...

打通 JAVA 与内核系列之 一 ReentrantLock 锁的实现原理

写JAVA代码的同学都知道,JAVA里的锁有两大类,一类是synchronized锁,一类是concurrent包里的锁(JUC锁)。其中synchronized锁是JAVA语言层面提供的能力,在此不...

C++26中同步与原子操作新变化(c++ 同步)

引言随着多核处理器和并发编程的普及,C++26进一步增强了对同步与原子操作的支持,为开发者提供了更高效、更安全的工具来应对多线程编程中的数据竞争与同步挑战。自C++11引入原子操作以来,C++标准库在...

采用Oracle OSB总线进行服务注册和接入

做大型企业内部业务系统集成的应该都知道,Oracle SOA套件当前是应用广泛的一个商业集成产品套件,其中包括了OSB服务总线, BPEL业务流程引擎,BPM业务流程管理,ODI大数据服务集成,MFT...