C语言
「已注销」
这个作者很懒,什么都没留下…
展开
-
C语言 - 冒泡排序
冒泡排序: 越小的元素会经由交换慢慢“浮”到数列的顶端(升序),两两元素进行比较,小的则向前移动再与前一个元素进行比较,如此反复。原始数据: 9 6 5 3 4第一轮: 3 9 6 5 4第二轮: 3 4 9 6 5第三轮: 3 4 5 9 6第四轮: 3 4 5 6 9/* Author:余性笃厚 * Description:冒泡排序 */#include <stdio.h>int main(void) { int bs[] =原创 2021-08-11 19:14:40 · 106 阅读 · 0 评论 -
C语言 - 选择排序
选择排序(Selection sort)的工作原理是: 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。/* * Author:余性笃厚 * Description:选择排序 */#include <stdio.h>int main(void) { int i, j; int arr[] = { 12,4,8,8,17 }; int totalE.原创 2021-08-11 18:30:39 · 184 阅读 · 0 评论 -
C语言 - 杨辉三角形
/* Author: 余性笃厚 * Description:输出下述如下内容 * 1 * 1 1 * 1 2 1 * 1 3 3 1 * 1 4 6 4 1 */#include <stdio.h>int main(void) { int i, j; int arr[5][5]; /* 行 */ for (i = 0; i < 5; i++) { /* 列 */ for (j = 0; j < 5; j++) { /*原创 2021-08-11 18:17:50 · 154 阅读 · 2 评论 -
C语言 - 输入一组人的年龄存到数组中,并且统计各阶段年龄的人数情况
/* * Author:余性笃厚 * Description:从键盘获取一组人的年龄存储到数组中,并且统计各个阶段年龄的人数情况。 */#include <stdio.h>int main(void) { int i = 0; int persons[10], ages[11] = {0}; //对 ages数组元素全部初始化为0 /* 获取年龄数据 */ for (; i < sizeof(persons) / 4; i++) { scanf("%d", &am原创 2021-08-10 16:51:02 · 4752 阅读 · 3 评论 -
C语言 - 将一个16位的正数进行左旋转和右旋转 “n”位
/* * Author:余性笃厚 * Description:将一个16位的正数进行左旋转和右旋转 “n”位 * Explanation:如 0x2345,旋转4位,左旋转为 0x5234 右旋转为 0x3452 *//* * 1. 16位的数就是 2个字节直接用 unsigned short; * 2. 移位的基准要知道左移以高位为基准,右移以低位为基准; * 3. 逻辑左移高位舍去,低位补 0;逻辑右移低位舍去,高位补 0。 */#include <stdio.h>原创 2021-08-09 12:20:45 · 231 阅读 · 0 评论 -
C语言练习-终端读取字符并判断
/* *author:余性笃厚 *description:从终端读取字符判断其时字母(大小写)、数字、标点符号 *要求:使用ctypt.h头文件中的相关原型函数*/#include <stdio.h>#include <ctype.h>int main(void) { char ch; printf("Please input a characer:"); scanf("%c",&ch); if (isalpha(ch)) {原创 2021-08-07 16:11:40 · 216 阅读 · 0 评论 -
异或运算符实现两整数交换&计算整数在内存中二进制1的个数(C语言)
一、计算整数在内存中二进制1的个数C语言中,对于移位操作执行的是逻辑左移和算术右移,但对于无符号类型所有的移位操作都是逻辑的。>> 算术右移,计算规则:右边丢弃,左边补原符号位算法思想: 例如计算整数 " 3 " 在内存中二进制 " 1 " 的个数,先需要将3与1进行 " 按位与 " 操作,结果肯定是1个,然后其余的31个位都移动到第一位进行比较,都为1才为1。#include <stdio.h>int main(){ int num, count = 0; p原创 2021-03-10 15:59:25 · 173 阅读 · 0 评论 -
C语言之getchar()的问题
一、源代码# include <stdio.h>int main(){ int ret = 0; char passwd[20]; printf("请输入密码:"); scanf("%s", passwd); printf("请确认(Y/N):"); ret = getchar(); if ('Y' == ret) printf("确认\n"); else printf("放弃\n"); return 0;}这段代码的结果一直是放弃,这是什么原因呢? 解答:原创 2021-03-04 11:45:14 · 357 阅读 · 1 评论 -
C语言之猜数字游戏实现[1,100]
一、源代码#include <stdio.h>#include <stdlib.h>#include <time.h>void menu() { printf("**********************************\n"); printf("*********** 1.play **********\n"); printf("*********** 0.exit **********\n"); printf("***原创 2021-03-04 10:55:16 · 1739 阅读 · 1 评论 -
C语言之“求10个整数中的最大值“和“打印九九乘法口诀“
一、问题求10个整数中的最大值打印九九乘法口诀二、源代码及运行结果问题1源代码如下(示例):# include <stdio.h>int main(){ int arr[] = { -110, -99999, 100, 180, 3467, 4000, 5897, 666, 794, 831 }; int length = sizeof(arr) / sizeof(int); int i = 0, max = arr[0]; //保证max是数组中的任一元素即可原创 2021-03-04 10:04:53 · 119 阅读 · 1 评论 -
数组的一些疑问(C语言)
数组名表示着数组首元素的首地址(两个情况例外)sizeof(数组名),计算整个数组大小,sizeof内部单独放一个数组名 数组名表示整个数组。&数组名,取出的是数组的地址,数组名表示整个的数组地址#include <stdio.h>int main(){ /*五个元素*/ int arr[] = { 1, 2, 3, 4, 5 }; printf("数组首元素首地址:\n"); printf("arr = %p\n", arr); printf("&arr原创 2021-02-27 01:05:39 · 91 阅读 · 0 评论 -
汉诺塔递归-C语言实现
汉诺塔的游戏网址:http://www.hannuota.cn Hanoi的游戏目的:打印塔A上所有的盘子移动到塔C的所有路径规则:1.每次仅能移动一次; 2.小的金盘必须在大的金盘上面思考任何问题我们思维上都应该先从数学的角度去分析,而不是一上来就思考编程如何实现。假令塔1有1个盘子,直接把其从塔1 -> 塔3假令塔1有2个盘子,仅需要塔1 -> 塔2,塔1 -> 塔3,塔2 -> 塔3假令塔1有3个盘子,需要塔1 -> 塔3,塔1 ->原创 2021-02-26 21:41:54 · 378 阅读 · 0 评论 -
C语言函数重要知识
一、函数是什么函数的定义:子程序,是一个大型程序中的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,具备相对的独立性。一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。二、为什么会有库函数:我们最开始时候就接触库函数,按照格式打印文本到屏幕上(printf)在编程的过程中我们会频繁的做一些字符串的拷贝工作(strcpy)计算n的k次方这样的运算(pow)---- 类似上述,它们不是业务性的代码,我们在开发的过程中每个程序员都可能用的到, 为了支持可移植性和提高程序的原创 2021-02-19 19:26:21 · 253 阅读 · 0 评论 -
C语言之二分查找法(拆半查找法)
一、问题问题:编写一个代码在有序数组中查找具体的某个数要求:找到了就打印数字的所在下标,找不到就输出:未找到!二、源代码及运行结果1.源代码代码如下(示例):#include <stdio.h>int main(){ int arr[] = { -18, -3, 4, 5, 8, 9, 10, 13, 18 }; int length = sizeof(arr) / sizeof(int); int lookup_value = 13; int index_le原创 2021-02-09 15:46:48 · 401 阅读 · 0 评论 -
C语言之计算:1/1 - 1/2 + 1/3 - 1/4 + 1/5 …… + 1/99 - 1/100 的值
计算:11−12+13−14+15……199−1100\frac{1}{1}-\frac{1}{2}+\frac{1}{3}-\frac{1}{4}+\frac{1}{5}……\frac{1}{99}-\frac{1}{100}11−21+31−41+51……991−1001一、源代码代码如下(示例):#include <stdio.h>int main(){ int i = 1, flag = 1; double sum = 0; for (; i <= 1原创 2021-02-08 16:33:56 · 605 阅读 · 0 评论 -
C语言之switch语句
提示:以下是本篇文章正文内容,下面案例可供参考一、switch的一般形式?switch(表达式){ case 常量表达式1: 语句1; case 常量表达式2: 语句2; … case 常量表达式n: 语句n; default: 语句n+1;}二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsi原创 2021-02-08 11:45:46 · 1097 阅读 · 0 评论 -
C语言之计算100-200之间的素数(试除法)
//问题:计算100-200之间的素数//素数:仅能被1和自身整除的数#include <stdio.h>int main(void){ int i, j, count = 0; for (i = 100; i <= 200; i++){ // i从100 -> 200递增 for (j = 2; j < i; j++){ // 判断 j 从 2 -> i-1 数能否被整除 if (i%j == 0) break; // 一旦i能被整数则立即跳出循环原创 2021-02-07 14:16:47 · 537 阅读 · 0 评论 -
辗转相除法求两数的最大公约数(C语言)
辗转相除法求两数的最大公约数/*m = 12(被除数) n = 8(除数) r = 4(余数)m = 8 n = 4 r = 4m = 4 n = 4 r = 0两数的最大公约数 n = 4*/#include <stdio.h>int main(){ int num1, num2,r =0; scanf("%d%d", &num1, &num2); while (r = num1%num2){ //取其变量值或算数运算后的值,0为fal原创 2021-02-06 22:15:32 · 1849 阅读 · 0 评论