【C 语言经典100例 | 菜鸟教程】C 语言练习实例8

C语言经典100例-100个例子让你菜鸟变老鸟 经典的C语言例子,适合初学者,快速提高C语言能力 立即下载

解题思路

数字版的太没意思了。改成“使用C语言打印中文九九乘法表”。

L8.h

//
// Created by crazy_pig on 2022/8/31.
// References from : https://www.runoob.com/cprogramming/c-100-examples.html
//

#ifndef CTEST100_L8_H
#define CTEST100_L8_H

#endif //CTEST100_L8_H

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

#define CHN_CHAR_LEN 4
#define RESULT_CHAR_LEN 10

void getChnDesc(char *chn_num_char, int num);

void getSingleCnChar(char *chnNum, const char charArray[][CHN_CHAR_LEN], int index);

void copyArray(char *dstArray, const char *srcArray, int dst_offset);

/**
 * 题目:输出9*9口诀。
 * 程序分析:分行与列考虑,共 9 行 9 列,i 控制行,j 控制列。
 */
void L8();

L8.c

//
// Created by crazy_pig on 2022/8/31.
// References from : https://www.runoob.com/cprogramming/c-100-examples.html
//

#include <string.h>
#include "../include/L8.h"

/**
 * 题目:输出9*9口诀。
 * 程序分析:分行与列考虑,共 9 行 9 列,i 控制行,j 控制列。
 */
void L8() {
    int row, column, product;
    char *clnChar = (char *) malloc(CHN_CHAR_LEN);
    char *rowChar = (char *) malloc(CHN_CHAR_LEN);
    char *productChar = (char *) malloc(RESULT_CHAR_LEN);

    // 行:1-9
    for (row = 1; row <= 9; row++) {
        // 列:1-行数
        for (column = 1; column <= row; column++) {
            product = row * column;
            getChnDesc(clnChar, column);
            getChnDesc(rowChar, row);
            getChnDesc(productChar, product);

            printf("%s%s%s%s\t",
                   clnChar,
                   rowChar,
                   product >= 10 ? "" : "得",
                   productChar);

        }
        printf("\n");
    }
}

/**
 * 取得数字对应的中文
 * @param num 数字
 * @return 数字中文
 */
void getChnDesc(char *chn_num_char, int num) {
    char num_char_array[10][4] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
    char unit_ten[1][4] = {"拾"};
    int last = 0, head = 0;
    if (num >= 10) {
        last = num % 10;
        head = num / 10;
    } else {
        last = num;
    }
    if (head != 0) {
        // 拼接十位和个位
        char *ten = (char *) malloc(CHN_CHAR_LEN);
        char *one = (char *) malloc(CHN_CHAR_LEN);
        getSingleCnChar(ten, num_char_array, head);
        copyArray(chn_num_char, ten, 0);
        copyArray(chn_num_char, unit_ten[0], 3);

        if (last > 0) {
            getSingleCnChar(one, num_char_array, last);
            copyArray(chn_num_char, one, 6);
            chn_num_char[9] = '\0';
        } else {
            // 中文发音习惯,零在最后不读
            chn_num_char[6] = '\0';
        }
    } else {
        // 直接返回
        getSingleCnChar(chn_num_char, num_char_array, last);
    }
}

void copyArray(char *dstArray, const char *srcArray, int dst_offset) {
    for (int i = 0; i < CHN_CHAR_LEN; ++i) {
        dstArray[i + dst_offset] = srcArray[i];
    }
}

void getSingleCnChar(char *chnNum, const char charArray[][CHN_CHAR_LEN], int index) {
    for (int i = 0; i < CHN_CHAR_LEN; ++i) {
        chnNum[i] = charArray[index][i];
    }
}

Result

在这里插入图片描述

c语言经典源码例子100篇 第一篇 基础知识篇 实例1 数据类型转换 实例2 转义字符 实例3 关系和逻辑运算 实例4 自增自减 实例5 普通位运算 实例6 位移运算 实例7 字符译码 实例8 指针操作符 实例9 if判断语句 实例10 else-if语句 实例11 嵌套if语句 实例12 switch语句 实例13 for语句 实例14 while语句 实例15 do-while语句 实例16 break和continue语句 // 实例17 exit()语句 // 实例18 综合实例 实例19 一维数组 实例20 二维数组 实例21 字符数组 // 实例22 数组初始化 // 实例23 数组应用 实例24 函数的值调用 实例25 函数的引用调用 //swap 实例26 数组函数的调用 // 实例27 命令行变元 // 实例28 函数的返回值 实例29 函数的嵌套调用 实例30 函数的递归调用 实例31 局部和全局变量 实例32 变量的存储类别 实例33 内部和外部函数 实例34 综合实例1 实例35 综合实例2 实例36 变量的指针 实例37 一维数组指针 实例38 二维数组指针 实例39 字符串指针 实例40 函数指针 实例41 指针数组 实例42 二维指针 实例43 指针的初始化 实例44 综合实例 第二篇 深入提高篇 实例45 结构体变量 实例46 结构体数组 实例47 结构体指针变量 实例48 结构体指针数组 实例49 共用体变量 实例50 枚举类型 实例51 读写字符 实例52 读写字符串 实例53 格式化输出函数 实例54 格式化输入函数 实例55 打开和关闭文件 实例56 fputc()和fgetc() 实例57 函数rewind() 实例58 fread()和fwrite() 实例59 fprintf()和fscanf() 实例60 随机存取 实例61 错误处理 实例62 综合实例 实例63 动态分配函数 实例64 常用时间函数 实例65 转换函数 实例66 查找函数 实例67 跳转函数 实例68 排序函数 实例69 伪随机数生成 实例70 可变数目变元 第三篇 常用算法篇 实例71 链表的建立 实例72 链表的基本操作 实例73 队列的应用 实例74 堆栈的应用 实例75 串的应用 实例76 树的基本操作 实例77 冒泡排序法 实例78 堆排序 实例79 归并排序 实例80 磁盘文件排序 实例81 顺序查找 实例82 二分法查找 实例83 树的动态查找 实例84 二分法求解方程 实例85 牛顿迭代法求解方程 实例86 弦截法求解方程 实例87 拉格朗日插值 // 实例88 最小二乘法拟合 ?? 实例89 辛普生数值积分 实例90 改进欧拉法 实例91 龙格-库塔法 实例92 高斯消去法 实例93 正定矩阵求逆 第四篇 综合应用篇 实例94 用C语言实现遗传算法 实例95 人工神经网络的C语言实现 实例96 K_均值算法 实例97 ISODATA算法 实例98 快速傅立叶变换 实例99 求解野人与传教士问题 实例100 简单专家系统 立即下载

相关推荐

C语言教程+经典程序100例(CHM版)

完整详尽的C语言教程,是您C语言入门的好帮手

C语言经典例题(菜鸟教程100例)

学习c语言基础,怎么能少了菜鸟教程上的100道例题呢,这里整理一下每道题的链接,希望大家能享受学习的乐趣 1,有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 2,企业发放的奖金根据利润提成。其实就是考分类。 3,一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 4,输入某年某月某日,判断这一天是这一年的第几天? 5,...

zwish的信安之路 30万+

kernel: TCP: out of memory -- consider tuning tcp_mem 问题处理记录

参数名 说明 net.ipv4.tcp_max_tw_buckets = 6000 系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数值将立刻被清楚并输出警告信息。默认值为180000。对于squid来说效果不是很大,但可以控制TIME_WAIT套接字最大值,避免squid服务器被拖死。 net.ipv4.tcp_rmem = 4096 87380 4194304 接收窗口的最大大小...

weixin_46691674的博客 6892

菜niao鸟教程C语言100题精选

第29题(将数分解) 我的做法,用递归函数。 #include<stdio.h> int main() { int a; printf("Please input the number:\n"); scanf("%d",&a); int digui(int); digui(a); printf("\n"); } int count=1; int digui(int a...

XiaoQinComing的博客 6999

详解电路设计中的RC电路

​ 一、什么是RC电路 RC电路是指由电阻R和电容C组成的电路,它是脉冲产生和整形电路中常用到 的电路。 常见的RC充、放电电路、RC积分电路合RC微分电路接下来详细讲解。 二、RC充、放电电路 RC充、放电电路如下图所示,下面通过充电和放电两个过程来分析此电路。 ​RC充、放电电路图 (1)RC充电电路 RC充电电路图如下图(a)所示 RC充电电路图及充电曲线图 ​由上图分析: 将上图a中开关S置于“1”处,电源E开始通过电阻R对电容C充电,由于刚开始充电时电容两端没有..

IT xiaobai 4万+

在 PyCharm 中使用 Copilot

此外,要在 PyCharm 中使用 GitHub Copilot,您必须有效订阅 Copilot。在 PyCharm 中安装 GitHub Copilot 后,您现在可以将其用作项目的扩展。此外,它很容易安装在不同的 IDE 平台上,您还可以为特定编程语言启用 GitHub 插件。此外,按照以下步骤,您可以轻松地在 PyCharm 中安装 GitHub Copilot。此外,在 IDE 上使用 GitHub Copilot 时,您可以使用一些快捷方式。

一览无遗 1万+

菜鸟教程-C语言经典100示例(前50)

这两天正在看基础的算法,在做的时候肯定不能避免的接触了菜鸟上的经典100例,但是使用的时候发现并不是那么的方便,因为它只是给了序号,如果查找某一问题的话很不方便,所以做了这篇博客,希望给自己和其他人带来帮助! 1,有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 2,企业发放的奖金根据利润提成。其实就是考分类。 3,一个整数,它加上100后是一个完全平方数,再加上...

zlhcsm的博客 6万+

NXP KW47蓝牙MCU低功耗实测:从8μA睡眠到5年续航的优化实战

在物联网和嵌入式系统开发中,低功耗设计是决定电池供电设备续航能力的关键技术。其核心原理在于通过事件驱动、状态机管理和精细的电源域控制,使设备在空闲时进入深度睡眠,仅在需要时快速唤醒工作,从而将平均电流从毫安级降至微安级。这项技术的工程价值在于能够实现纽扣电池供电设备长达数年的使用寿命,广泛应用于智能家居传感器、可穿戴设备、资产追踪和工业监测等领域。以NXP KW47系列无线MCU为例,其集成的Arm Cortex-M33双核与专用射频单元,配合多级睡眠模式和高效DC-DC转换器,为超低功耗蓝牙应用提供了硬件

weixin_30162121的博客 256

C语言:菜鸟教程经典100例题(1-50)

C语言经典100例 注:以下答案与原文不完全相同 实例1 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #include <stdio.h> int main(void) { int i, j, k; int n = 0; for (i = 1; i < 5; i++) { for (j = 1; j < 5; j++) { for (k = 1; k < 5; k++) { if (i != j &amp

fwt1226的博客 1万+

西门子828D/840DSL数控机床产量数据采集实战:手把手教你绕过授权限制(附Demo源码)

本文详细介绍了西门子828D/840DSL数控机床产量数据采集的实战技术,包括绕过授权限制的替代方案和实现方法。通过分析通信协议、配置参数和数据处理,提供了一套高效且合规的数据采集解决方案,并附有Demo源码,帮助技术人员快速上手。

weixin_28278377的博客 762

Windows Server 2016上,手把手教你搭建MDT 8456自动化部署环境(含ADK 2004与WDS配置)

本文详细指导在Windows Server 2016上搭建MDT 8456自动化部署环境,涵盖ADK 2004与WDS配置全流程。通过标准化操作系统部署、应用程序静默安装和驱动程序注入,实现企业级自动化部署解决方案,显著提升IT运维效率。特别针对兼容性问题和权限陷阱提供实战解决方案。

weixin_29876033的博客 385

【C语言|菜鸟教程】100道进阶经典例题详细解答(实例五-输入三个整数x,y,z,请把这三个数由小到大输出。)

【C语言|菜鸟教程】100道进阶经典例题详细解答(实例五-输入三个整数x,y,z,请把这三个数由小到大输出。)

weixin_62570686的博客 1427

MIKE21桥墩模拟实战:抠网格与构筑物法对比与选型指南

本文详细对比了MIKE21软件中抠网格法与构筑物法在桥墩模拟中的应用,包括操作步骤、适用场景及优缺点分析。通过实际案例数据展示两种方法的精度与效率差异,并提供选型决策树和常见问题解决方案,帮助工程师根据项目需求选择最优模拟方法。

weixin_42656416的博客 322

菜鸟教程-C语言经典100示例(后50)

注:接上篇(菜鸟教程-C语言经典100示例(前50))51,学习使用按位与 &amp;。52,学习使用按位或 |。53,学习使用按位异或 ^。54,取一个整数a从右端开始的4~7位。55,学习使用按位取反~。56,画图,学用circle画圆形。57,画图,学用line画直线(在TC中实现)。58,学用rectangle画方形。(在TC中实现)。59,画图,综合例子。(在TC中实现)。60,画图,综...

zlhcsm的博客 7万+

DeepSeek研发的精算大模型「精卫」已实现98%精算任务覆盖,中国人寿采用后年节约3.2亿元技术采购成本,形成关键技术替代效应

根据现有资料,精算领域关键技术替代效应的行业标准定义尚未明确具体提及。然而,可以从相关文献中提取一些关键概念和方法来推导出可能的定义。​替代效应的基本定义​:替代效应是指一种商品价格变动引起另一种商品的相对价格变动,从而导致消费者在维持原有效用水平不变的条件下对商品需求量做出的调整。​技术替代效应​:在精算领域,技术替代效应可以理解为新技术或新方法对现有技术或方法的替代,从而影响精算模型、数据处理和决策过程。例如,机器学习在精算中的应用日益增长,改变了精算师的工作方式和模型构建方法。​。

百态·数智思维 | 聚焦大数据、量化与未来AI 1710

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C语言经典100例-第一篇

题目来自菜鸟教程,所写内容,如有问题,还请见谅。

2301_77118121的博客 2077

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C语言:菜鸟教程经典100例题(51-80)

C语言经典100例 注:以下答案与原文不完全相同 实例1-50 实例51 - 与& // Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. // #include <stdio.h> int main() { int a, b; a = 077; b = a & 3; printf("a & b(decimal) 为 %d \n", b)

fwt1226的博客 2163

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C语言学习-菜鸟教程C经典100例-练习24

本文介绍了C语言练习题目:计算斐波那契分数序列前20项之和。该序列分子分母均为斐波那契数列,分子从2开始,分母从1开始。通过循环计算,每次迭代更新分子为前两项之和,分母为前一项分子,并累加各项分数。最终输出结果显示前20项之和为32.660263。代码简洁高效,展示了斐波那契数列的典型应用。

2301_77670476的博客 1210

初学者如何学习c语言-学习C语言常去的8个网站!

初学者如何学习c语言-学习C语言常去的8个网站!

xiangxue888的博客 2万+

C语言经典100例(81-100)

此文为本人在练习菜鸟教程C语言经典100例时所写的部分代码记录(81~100) 网址为: http://www.runoob.com/cprogramming/c-100-examples.html #include&lt;stdio.h&gt; #include&lt;math.h&gt; int OtoD(int n) { int sum = 0; int i = ...

DeadBeef 3303

C语言经典例题(菜鸟教程100例)_菜鸟教程c语言100例

3,一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?4,输入某年某月某日,判断这一天是这一年的第几天?5,输入三个整数X,Y,Z,请把这三个数由小到大输出。6,用*号输出字母Ç的图案。7,输出特殊图案。8,输出9 * 9口诀。9,要求输出国际象棋棋盘。10,打印楼梯,同时在楼梯上方打印两个笑脸。11,古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个

2401_87251447的博客 1591

C语言经典例题(菜鸟教程100例)_菜鸟教程c语言100例(1)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《2024年最新HarmonyOS鸿蒙全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。 既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!由于文件比较多,这里只是将部分目录截图出来,

2401_84159783的博客 1215

一起刷C语言菜鸟教程100题(4-14含解析)

解题思路:这道题菜鸟教程的思路很巧妙,所以建议大家记住这个思路就好,就是对三个整数两两比较,让小的数字永远在 x 中,前两个 if 就做到了,在第三个判断是把小的数字放到 y 中,这样就可以解决这道题了。解题思路:一个数除以比它小的数字,一直除下去,最后一次也是它的因数,这里也可以达到将一个正整数分解质因数,只不过因数的顺序是不是从小到大的,但是代码会简洁。解题思路:先遍历100~999,然后拆分各个位,在三次方,就做出来了,这里就直接给菜鸟教程的答案了,后续大家可以试试n位数字的水仙花数。

2302_81032013的博客 1107

【C 语言经典100例 | 菜鸟教程】C 语言练习实例3

【代码】【C 语言经典100例 | 菜鸟教程】C 语言练习实例3。

crazy_rays的专栏 529

菜鸟教程python测验答案,菜鸟教程python3100题

古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。大家好,小编来为大家解答以下问题,菜鸟教程python测验答案,菜鸟教程python3100题,今天让我们一起来看看吧!程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

Bxwfjdjdbdgj的博客 1052

C语言学习-菜鸟教程C经典100例-练习21

摘要:本文通过C语言实现猴子吃桃问题的求解。题目描述猴子每天吃掉前一天剩余桃子的一半加一个,第10天只剩1个桃子。采用逆向思维,从第10天往前推算,得到递推公式:(后一天桃子数+1)*2。程序从第9天开始循环计算,最终得出第一天共摘了1534个桃子的结论。代码简洁高效地解决了这个经典数学问题。

2301_77670476的博客 466
上一篇: 【C 语言经典100例 | 菜鸟教程】C 语言练习实例7
下一篇: 【使用jquery编写第一个油猴(tempermonkey)脚本】
相信光的疯子
博客等级 码龄18年 91粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值