大学C语言备考打小怪
大学C语言练习demo,学习日志,gitlab地址:https://gitlab.com/yeliner/demo.git
yelinliner
养成中~路漫漫其修远兮,吾将上下而求索
展开
-
有n个人围一圈,顺序排号,报号游戏
网上关于这个问题的解法已经有很多了,我现在是把网上的一些加上自己的理解,套用为一个固定写法,当然理解最重要啦! 我也是最近才开始学指针的,欢迎大家留言学习讨论报数游戏的普遍说法: 有10个人围一圈,顺序排号,从开始位置报数,计数从1开始,凡报为3的倍数,出圈,问最后剩下的是几号? 报数游戏的衍生提取: 有N个人围一圈,顺序排号,由位置S开始报数,计数从A开始,凡报为B的倍数出圈,问最后...原创 2018-05-11 17:02:34 · 4419 阅读 · 2 评论 -
C语言数据类型——基本类型,构造类型,枚举类型,指针类型
目录一.基本类型1.1.整型int1.2.实型(浮点型)1.3.字符型char二.构造类型2.1.数组类型[]2.1.1.字符数组2.1.2.一维数组2.1.3.二维数组2.1.4.三维数组2.2.结构体类型struct2.2.1.定义2.2.2.结构体变量2.2.3.结构体数组2.2.4.指向结构体的指针2.2.5.指向...翻译 2019-05-05 20:00:19 · 16337 阅读 · 7 评论 -
C语言经典题目:递归,迭代法解决斐波那契数列,,猴子吃桃问题
1.猴子吃桃:某天摘若干个,当天吃掉一半,又多吃一个,重复到第8天时只剩下一个桃子了分析:设f(x)为每天还剩的桃子个数;题目中说到第8天时只剩下一个,则f(8)=1,同时从题目中可知猴子每天吃掉一半,又多吃了一个,因此f(8)=f(7)/2-1;据此可写出函数:f(x)=f(x-1)/2-1;f(x)=2*f(x+1)+1,f(8)=1(1).利用递归,可推出公式f...翻译 2019-01-08 21:56:10 · 6476 阅读 · 1 评论 -
C语言经典题目:求最大公约数,最小公倍数
最大公约数:指两个或多个整数共有约数中最大的一个最小公倍数:指两个或多个自然数公有的倍数中最小的一个1.两数求最大公约数思路:辗转相除法(即欧几里德算法)。1).对于两个正整数m,n2).r=m%n,取余3).若r=0,则n为最大公约数,程序结束==>m是n的倍数,因此n为m的最大约数;否则m=n;n=r;转向步骤2.==>若m,n无倍数关系,则最大公约数便是n与m%n的...翻译 2019-01-08 21:40:38 · 515 阅读 · 0 评论 -
C语言经典题目:求阶乘n!=n*(n-1)*...*1,阶乘和s=1!+(2)!+(3)!+...+n!
1.求阶乘n!=n*(n-1)*...*1思路:利用递推,迭代;找规律:f(1)=1;f(2)=2*1;f(3)=3*2*1=3*(f(2));一般公式:f(n)=n*f(n-1)float fac(int n){ //求n!=n*(n-1)*...*1; if (n == 1 || n == 0) { return 1; } return n * fac(n -...翻译 2019-01-08 21:27:59 · 10858 阅读 · 0 评论 -
C经典题目:判断回文数,如12321
判断回文数思路:先判断是几位数 把最高位与最低位相比较,若相等转入步骤3,若不等,则终止,返回false 去掉最高位和最低位,位数减2;再转入步骤2解决方法:利用循环获得位数n 最高位=数/10^(位数-1);h = x / (int)pow(10, n - 1) 最低位=数%10;l = x % 10 去掉最高位:x = x % (int)pow(10, n - 1) 去掉...翻译 2019-01-08 21:19:36 · 1592 阅读 · 0 评论 -
用指针实现,采用冒泡排序法将数组中的数据升序排序
冒泡排序原理:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。举例:int a[]={1, 4, 22 ,6, 88}; 排序过程如下: times 1: 1...原创 2018-06-20 14:25:26 · 12068 阅读 · 0 评论 -
在已排好序的数组中,按原来排好的规律插入或删除一个数
设有一个已排好序的数组,输入一个数,按原规律将它插入 例如: 原:a[10] = { 1,3,5,7,9,11,13,15,17,19 } 插入:18 新:a[10] = { 1,3,5,7,9,11,13,15,17,18 } 思路: 1.不管是数组是否有序,插入的关键就是找到要插入的**位置(下标)**option 2.然后再从该位置开始重新排序 实现代码:void a...翻译 2018-06-17 12:27:31 · 6732 阅读 · 0 评论 -
打印杨辉三角的几种方法(数组,指针)
1.常规void yht() { //Yang Hui triangle 杨辉三角 //第0列和对角线上的元素均为1,其他元素的值均为上一行的同列元素和前一列元素之和; int a[7][7], i, j; for (i = 0; i < 7; i++) { a[i][0] = 1;//第0列 a[i][i] = 1...翻译 2018-05-19 16:59:12 · 4831 阅读 · 2 评论 -
一个for循环打印九九乘法表
无论是学习哪一门编程语言,九九乘法表都是逃不开的循环示例,那如果只用一个for循环怎么实现呢? 先来看常规的双重循环代码:void multable(){ //使用双重循环,实现99乘法表 int i, j;//定义i,j两个变量 // 口诀:外层循环控制行,内层循环控制列 for (i = 1; i <= 9; i++)//外层循环,给i赋初始...原创 2018-05-19 16:40:23 · 50363 阅读 · 0 评论 -
c语言字符数组的输入提醒问题
最近在学C语言数组时,想实现一个和Java一样有输入提醒时,发现事与愿违,后来仔细看了一下C语言输入函数的详解,最终得到解决,现在就来分享一下. 先来看一下对比: 在scanf和printf函数中使用格式说明符%c,进行逐个字符输入输出#include <stdio.h>int main() { /*大家来找茬*/ char c[5]; int...原创 2018-05-05 21:40:11 · 1620 阅读 · 0 评论