![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
想种胡杨
这个作者很懒,什么都没留下…
展开
-
数组指针和指针数组
#include <stdio.h>#include <stdlib.h>int main() { int a[] = { 1, 2, 3, 4 }; // 定义一个数组 printf("%p\n", a); // 直接取到数组名,则隐式转换成指针,指向数组首元素 printf("%p\n", &a); // 还是一个指向数组首元...原创 2018-11-26 17:31:48 · 87 阅读 · 0 评论 -
二级指针
其实二级指针并不难理解,只不过指针里面的元素又是一个指针而已,也就是所谓的指针套指针。下面是一个二级指针的简单用法,可以帮助大家理解二级指针。#include <stdio.h>#include <stdlib.h>int main() { int a = 10; int* p = &a; int** pp = &p; ...原创 2018-11-26 16:57:50 · 205 阅读 · 0 评论 -
C语言操作符详解
对于C语言操作符,根据我所掌握的内容可以总结如下:1.算数操作符算数操作符就是我们最常见的“加减乘数模”:+ - * / %,需要注意的有两点1.两个整数相除是整数,所以结果会自动取整,这就给我们的计算带来了误差,误了避免这种误差,我们常常将被除数转化为浮点型数据。例如 1/2 结果就是0,这很明显有错误,为了保证正确性,只需要写成 1.0/2 即可。2...原创 2018-11-25 23:16:06 · 141 阅读 · 0 评论 -
求Sn = a+aa+aaa+aaaa+aaaaa的和
#include <stdio.h>#include <stdlib.h>#include <math.h>// 先把每一项求出来,再求和// 第1项 2// 第2项 22 = 20 + 2 = 2*10 + 2 = 2*10^1 + 2*10^0// 第3项 222 = 200 + 20 + 2 = 2*100 + 2*10 +2 = 2*10^...原创 2018-11-16 22:15:24 · 556 阅读 · 0 评论 -
水仙花数
“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。例如:153、370、371及407就是三位数的水仙花数,其各个数之立方和等于...原创 2018-11-16 22:06:59 · 157 阅读 · 0 评论 -
二分查找
“二分查找”又叫“折半查找”,顾名思义,在一个有序的数组中查找一个元素的索引(此处需注意数组必须是有序的,不然不能称之为折半查找),按照我们一贯的想法就是先找出中间数,然后再把要查找的数与这个中间数做比较,如果要查找的数小于这个中间数,则在左半边查找,反之则在右半边查找,接下来便是重复上述操作直到中间值恰好等于要找的那个数。“二分查找”便是基于这样的查找思想。为了方便大家理解附上一...原创 2018-11-14 21:17:28 · 128 阅读 · 0 评论 -
冒泡排序
“冒泡排序”又称“气泡排序”,基本思路是:每次将相邻两个数比较,将小的调到前面,每一趟比较就得到一个较大或较小的数,如果有n个数,则要进行n-1趟比较。可以有升序和降序两种排序方式,就升序来说,既可以从前向后冒,这样的话就是找最大值,又可以从后向前冒,这样便是找最小值。 下面便向大家展示升序的找最小和找最大的两种方式。从后向前冒(找最小):#include ...原创 2018-11-14 21:04:39 · 135 阅读 · 0 评论 -
打印任意大小的菱形
#include <stdio.h>#include <stdlib.h>void PrintLine(int blank_count, int star_count) { for (int i = 0; i < blank_count; ++i) { printf(" "); } for (int i = 0; i < star_count; ...原创 2018-11-12 15:25:06 · 316 阅读 · 0 评论 -
求两个数的最大公约数
#include <stdio.h>#include <stdlib.h>int MaxGongyue(int x, int y) { // 保存了当前的最大公约数 int max_gongyue = 0; // 用来逐步试探的变量 int num = 1; for (; num <= x; num++) { for (; num <= y;...原创 2018-11-15 23:32:55 · 96 阅读 · 0 评论 -
使用递归求n的k次方
求 n^k 可以转化为 n*n^(k-1),而n^(k-1)又可以转换成n^(k-1)*n^(k-2),以此类推#include <stdio.h>#include <stdlib.h>int Factor(int n, int k) { if (k == 1) { return n; } else { return n*Factor(n, (k -...原创 2018-11-08 13:30:58 · 1173 阅读 · 0 评论 -
递归和非递归分别实现斐波那契数列
以下是用非递归方法求的斐波那契数:#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int main() { int n; scanf("%d", &n); // i: 次数 j: 第一个数 k: 第二个数 m: 第三个数 int j = 1; int k...原创 2018-11-08 13:22:44 · 651 阅读 · 0 评论 -
数组的初始化、清空和逆置
#include <stdio.h>#include <stdlib.h>void Init(int arr[], int size) { // memset 一个字节一个字节的填充 memset(arr, 0, size*sizeof(arr[0]));}void Empty(int arr[], int size) { Init(arr, size)...原创 2018-11-11 11:40:28 · 154 阅读 · 0 评论 -
三子棋游戏
写三子棋游戏之前,应该先考虑清楚以下问题:①下棋的一方是电脑,一方是玩家,玩家是靠输入一个坐标表示在哪里落子,而电脑是产生随机数随机落子。电脑落下的子用“o”表示,玩家落下的子用“x”表示。②要下棋肯定首先是要定义一个棋盘再将棋盘初始化不然没法落子,接着就得打印出棋盘。③默认玩家先落子,要考虑非法落子的情况还有另外一种可能就是输入的坐标那个地方已经有子的情况,这两种情况发生都要求玩家重...原创 2018-11-13 11:25:59 · 174 阅读 · 0 评论 -
模拟三次输入密码
模拟三次输入密码的场景,如果密码正确,提示“登录成功”,密码错误,可以重新输入,最多能输三次,如果三次均错则提示“登录失败”。 #include <stdio.h>#include <stdlib.h>#include <string.h>int main() { // 定义一个字符数组用来存储密码 char password[1024] = {...原创 2018-11-05 18:23:31 · 352 阅读 · 0 评论 -
猜数字游戏
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>void Game() { // 生成随机数 // 0-32767 srand((unsigned int)time(0))...原创 2018-11-05 11:24:07 · 211 阅读 · 0 评论 -
递归和非递归分别实现求strlen
非递归法:// c string 是以 \0 结尾的字符数组#include <stdio.h>#include <stdlib.h>int main() { int strlen = 0; char str[] = "abcd"; while (str[strlen] != '\0') { ++strlen; } printf("%d\n", s...原创 2018-11-09 08:52:55 · 112 阅读 · 0 评论 -
C语言初级指针
#include <stdio.h>#include <stdlib.h>int main() { int a[] = { 1, 2, 3, 4 }; printf("%d\n", sizeof(a)); // 求整个数组的字节数,4*4 = 16 printf("%d\n", sizeof(a + 0)); // 此时数组名隐式退化成指针...原创 2018-11-27 12:21:54 · 192 阅读 · 0 评论