首页 > 其他分享 >C语言项目实现--数字游戏

C语言项目实现--数字游戏

时间:2024-12-05 10:59:48浏览次数:8  
标签:游戏 -- year C语言 int num printf 水仙花 数字

数字游戏

根据用户选择,完成以下功能

解一元二次方程;判断指定年份是否是闰年;判断某一数字是否是水仙花数

简单了解:

一元二次方程:

仅注意观察▲即可

闰年:

普通润年:能被 4 整除但不能被100 整除的年份

世纪润年:能被 400 整除的世纪年(即以 00 结尾的年份)

eg.1900可以被4整除(475),但不可以被400整除(4.75),所以他是世纪润年

水仙花数:

水仙花数也被称作自恋数、自幂数,它是指一个 n 位数(n≥3),其各位数字的 n 次幂之和等于该数本身

水仙花数要求是三位数及以上的整数。因为对于一位数和两位数来说,很难满足各位数字的 n 次幂之和等于该数本身这一核心条件,从三位数开始才有符合该性质的数存在。例如,最小的水仙花数是三位数的153

源代码

#include <stdio.h>
#include <math.h>
// 解一元二次方程
void solveQuadraticEquation() 
{
    double a, b, c;
    double delta;
    printf("请输入一元二次方程ax^2 + bx + c = 0的系数a、b、c:\n");
    printf("a = ");
    scanf("%lf", &a);
    printf("b = ");
    scanf("%lf", &b);
    printf("c = ");
    scanf("%lf", &c);
    delta = b * b - 4 * a * c;
    if (delta > 0) 
    {
        double x1 = (-b + sqrt(delta)) / (2 * a);
        double x2 = (-b - sqrt(delta)) / (2 * a);
        printf("方程有两个不同的根:x1 = %lf, x2 = %lf\n", x1, x2);
    }
    else if (delta == 0) 
    {
        double x = -b / (2 * a);
        printf("方程有一个根:x = %lf\n", x);
    }
    else
    {
        printf("方程没有根\n");
    }
}
// 判断是否为闰年
int isLeapYear(int year) 
{
    return ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));//前者为普通闰年,后者为世纪闰年
}
// 判断是否为水仙花数
int isNarcissisticNumber(int num) 
{
    int originalNum = num;  // 保存原始输入的数字,方便后续比较
    int digitCount = 0;  // 用于记录数字的位数
    // 通过不断除以10来确定数字的位数
    while (num != 0) 
    {
        num /= 10;
        digitCount++;
    }
    num = originalNum;  // 恢复原始数字,用于后续计算
    int sum = 0;
    // 获取这个数每位上的值
    while (num != 0) 
    {
        int digit = num % 10;  // 获取当前数字的个位、十位、百位……数字
        sum += (int)pow(digit, digitCount);  // 计算当前数字的digitCount次幂,并加到sum中
        num /= 10;  // 去掉已经处理过的个位数字
    }
    // 判断计算得到的和是否与原始数字相等,如果相等则是水仙花数
    if (sum == originalNum) 
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
int main()
{
    int choice;
    while (1)
    {
        printf("\n数字游戏功能菜单:\n");
        printf("1. 解一元二次方程\n");
        printf("2. 判断指定年份是否是闰年\n");
        printf("3. 判断某一数字是否是水仙花数\n");
        printf("4. 退出程序\n");
        printf("请输入你的选择(1-4):");
        scanf("%d", &choice);
        switch (choice)
        {
        case 1:
            solveQuadraticEquation();
            break;
        case 2:
            int year;
            printf("请输入要判断的年份:");
            scanf("%d", &year);
            if (isLeapYear(year))
            {
                printf("%d年是闰年。\n", year);
            }
            else
            {
                printf("%d年不是闰年。\n", year);
            }
            break;
        case 3:
            int number;
            isNarcissisticNumber(number);
            printf("请输入要判断的数字: ");
            scanf("%d", &number);
            if (isNarcissisticNumber(number))
            {
                printf("%d是水仙花数\n", number);
            }
            else
            {
                printf("%d不是水仙花数\n", number);
                break;
        case 4:
            printf("程序已退出,感谢使用!\n");
            return 0;
        default:
            printf("无效的选择,请重新输入!\n");
            break;
            }
        }
    }
    return 0;
}  

标签:游戏,--,year,C语言,int,num,printf,水仙花,数字
From: https://blog.csdn.net/kangll_/article/details/144259347

相关文章

  • Qt - Json数据解析
     json数据格式:{"name":"Alice","age":30,"isStudent":false,"courses":[{"courseName":"Mathematics","credits":3,"ins......
  • 01-什么是C语言
    一、什么是C语言C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。1、语言人和人交流的语言:汉语、英语、日语、等等。人和计算机交流语言(计......
  • python带翻页blbl视频爬虫程序代码QZQ
    importsubprocessdefdownload_bilibili_video(video_url):try:#使用you-get下载视频,-o指定输出目录(这里是当前目录)subprocess.run([‘you-get’,‘-o’,‘.’,video_url],check=True)print(“视频下载成功!”)exceptsubprocess.CalledProcessErrorase:print......
  • C语言笔记--文件操作
    为什么使用文件使用文件我们可以将数据直接存放在电脑的硬盘上,做到了数据的持久化。什么是文件磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),......
  • jQuery简单带记事功能的日历插件
    e-calendar是一款jquery简单带记事功能的日历插件。通过该jQuery日历插件你可以记录或设置某天某个时刻发生的事情,具有工作备忘录的功能。通过简单的参数设置你就可以定制该日历插件的外观。 在线演示 下载  使用方法要使用该jQuery日历插件首先引入jQuery和jquery.e-......
  • 医院综合后勤部门系统运维数智化的探索之路
    一、引言医院后勤运维管控智能化是当前医疗行业发展的重要趋势。随着科技的不断进步,医院的信息化建设也在日益深入。医院综合后勤部门作为医院信息化建设的关键力量,在后勤运维管控中发挥着越来越重要的作用。在当今时代,医院的规模不断扩大,医疗水平和服务质量持续提升,这也......
  • centos7 python3.9.10 报错 No module named _ssl
    配置openssltar-zxvfopenssl-1.1.1w.tar.gzcdopenssl-1.1.1w/./config--prefix=/usr/local/openssl--openssldir=/usr/local/opensslmakemakeinstallmv/usr/bin/openssl/usr/bin/openssl_backupln-s/usr/local/openssl/bin/openssl/usr/bin/opensslln-s/......
  • 大模型微调知识全景
    大模型微调知识全景文章目录大模型微调知识全景一、大模型开发全流程二、什么是大模型微调三、为什么需要大模型微调四、大模型微调的方法有哪些4.1FFT的缺点4.2PEFT的优点4.3PEFT的分类五、各类微调方法的原理是什么5.1In-ContextLearning5.2SoftPromptTun......
  • Python 编程入门教程
    Python是一种广泛使用的高级编程语言,以其代码的可读性、简洁性和强大的库支持而闻名。Python的设计哲学强调代码的可读性和简单性,这使得它成为初学者和专业人士学习编程的理想选择。Python应用广泛,从网站开发到数据科学、人工智能、自动化脚本等,几乎涵盖了所有编程领域。Py......
  • 前端day02总结
    后端覆盖reactive对向3种方式1.覆盖数组reactive([])constoptionList=reactive({optionData:[]})2.覆盖对象reactive({})constpageInfo=reactive({pageData:{page:1,pageSize:10,total:33}})3.给后端传值,不需要返回数据constqueryForm=reactive({userna......