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

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

maynowei10个月前 (09-04)技术知识88

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

相关文章

Win10系统除了移植Objective C,还要有Swift

IT之家讯Build2015大会最让人震惊的莫属微软推出工具,Win10系统可以移植安卓/iOS应用,特别是后者使用的Objective C编程语言,不过最新消息表明,微软连苹果最新的Swift移植也...

C语言进阶教程:线程同步:互斥锁、条件变量与信号量

在多线程编程中,线程同步是确保数据一致性和程序正确性的关键。当多个线程需要访问共享资源时,如果缺乏适当的同步机制,就可能导致竞态条件(Race Condition)、死锁(Deadlock)等问题。本...

C++11 同步机制:互斥锁和条件变量

前段时间,我研究了 ROS2(Jazzy)机器人开发系统,并将官网中比较重要的教程和概念,按照自己的学习顺序翻译成了中文,进行了整理和记录。到目前为止,已经整理了20多篇文章。如果你想回顾之前的内容,...

Qt QWaitCondition 的正确使用方法

简单用法QWaitCondition 用于多线程的同步,一个线程调用QWaitCondition::wait() 阻塞等待,直到另一个线程调用QWaitCondition::wake() 唤醒才继续往...

go语言并发原语RWMutex实现原理及闭坑指南

1.RWMutex常用方法Lock/UnlockRLock/RUnlockRLocker 为读操作返回一个Locker接 口的对象2. RWMutex使用方法 func main() { var c...

什么?Java 中的锁还有状态?(java中的锁都有哪些类型)

线程如果锁住了某个资源,致使其他线程无法访问的这种锁被称为悲观锁,相反,线程不锁住资源的锁被称为乐观锁,而自旋锁是基于 CAS 机制实现的,CAS又是乐观锁的一种实现,那么对于锁来说,多个线程同步访问...