
C语言啊
致宁
不安于现状才能不断努力
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言基本代码练习1
1.100到200之间的素数素数就是除了1和它本身不可被别的数所整除。 那么就可以用两个for循环来实现,一个作为所要判断的数,一个做为要除的数,从2开始且不等于它本身。 定义count,表示能整除的个数,count=0时,避免重复输出。 具体代码如下:#include <stdio.h>#include <stdlib.h&原创 2018-09-20 15:18:07 · 1536 阅读 · 0 评论 -
C语言位操作符的一些应用
位操作符基础操作 返回二进制中 1 的个数 1.可以用'&1' '^1'和'>>'来二进制的操作实现(可以移动value也可以移动1) 2.用while循环,x=x&(x-1)能循环几次就有几个1.#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>int count_one_b...原创 2018-10-21 19:28:44 · 314 阅读 · 0 评论 -
C的实际问题-跳水比赛
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三; E选手说:我第四,A第一; 比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。 int main(){ int a, b, c, d, e; for (a = 0; a < 5; a++) {...原创 2018-10-23 18:31:46 · 279 阅读 · 0 评论 -
循环链表_约瑟夫环
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时把编号从0~n-1,最后结果+1即为原问题的解。clist.h文件#define _CRT_SECURE_NO_WARNINGS...原创 2018-10-26 23:06:08 · 342 阅读 · 0 评论 -
让一个数组中奇数在前偶数在后
不要求奇数偶数排序思路:设定两个变量,从数组两端开始往里缩减,要求左边都为奇数,那么left为奇数就++判断下一个,如果是偶数就停止,右边的思路也一样,等到两个whlie循环结束了那么把两个不符合循环条件的数互换。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int ...原创 2018-10-31 21:36:28 · 4482 阅读 · 1 评论 -
杨氏矩阵中找一个元素
要求时间复杂度小于O(n)思路:杨氏矩阵的特点是从左到右从上到下都是递增的。那么就可以看我们要找的value是不是比一行的最大的一个数大,也就是最后一个数。如果大,那就说明value可能在下一行,否则就在这一行寻找。在行内寻找也是同样。#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#define N 3...原创 2018-10-31 21:48:33 · 268 阅读 · 0 评论 -
C-扫雷小游戏
要实现的结果:实现扫雷游戏的基本功能 能够展开一片无雷区域 能够在输入的坐标显示附近八邻域的雷数 不要让玩家走第一步就被"炸死"实现的思路及代码:1.想清楚这个游戏应该分为几个板块,什么函数并实现什么功能,函数应放在那个板块等等,然后再一点点填充函数定义。这个游戏我计划用两个源文件test.c和game.c,头文件game.h。test.c实现的功能是接收玩家选项、实现游戏...原创 2018-10-24 22:42:14 · 241 阅读 · 0 评论 -
将一个数的二进制翻转后得到其对应的十进制
掌握输出二进制码的算法 掌握二进制转换十进制的算法 unsigned int reverse_bit(unsigned int value){ int arr[40] = { 0 }; unsigned int num = 0; printf("%d翻转二进制之后的二进制:\n",value); for (int i = 0; i < 32; i++)//翻转二进制之后的二进制...原创 2018-10-30 19:21:07 · 1812 阅读 · 0 评论 -
求两个数的平均值3种方法
方法1:(a+b)/2,但是会存在溢出现象。 方法2:float c = a+(b-a)/2.0,不用创建第三个变量。 方法2:float c = a&b+((a^b)>>1),直接操作bite位,效率更高。主要解释第三种方法:a&b:相当于同一个bite位上相同的平均值,相同的平均值即为自身。a^b:相当于同一个bite位上不相同的数之和。>&...原创 2018-10-31 20:57:16 · 12191 阅读 · 0 评论 -
求一组数的出现一次的数(位运算)
a^a=0 ; a^0=a; 一个数只出现一次,可以将整个数组进行^处理,相同的会为0,直到出现一次的数^后即为它本身。 有a、b两个数只出现一次,可以先将整个数组^处理,得到c,c =a^b,找出第N位不同即c的第N位一定为1,将数组分为两组,一个第N位为1,一个为0,然后分别将两个数组异或,得到a和b。下面是代码://只有一个出现一次的数int main(){ int arr...原创 2018-11-01 09:12:37 · 278 阅读 · 0 评论 -
将数组倒置,单词内部不变
“student a am i”--->"i am a student" 思路:先把整个字符串倒置,再利用空格将每个单词倒置回来。void reverse(char str[], int begin, int end){ while (begin < end) { char temp = str[begin]; str[begin] = str[end]; st...原创 2018-11-01 09:12:13 · 244 阅读 · 0 评论 -
字符串—左旋右旋
函数功能:输出字符串左旋右旋K次的结果,这里就只输出左旋。 输入两个字符串str1、str2判断str2是不是str1的旋转后的字符串左旋:revolve左旋1次是evolver ;左旋2次是volvere;右旋即相反旋转;思路:左旋的实质:就是把字符串第一位(0)的字符放到最后一位(len-1),再依次向前移动一位,循环K次即可。比较两个字符串,就是把str2和str1的...原创 2018-11-03 20:56:09 · 785 阅读 · 0 评论 -
C语实现格子乘法--大整数乘法
之前看过有博主发过python版的,看了一看觉得这个方法好玩,小时候老师提过,但又总听不懂,现在就想试试看能不能实现起来。博客链接: https://blog.youkuaiyun.com/djd1234567/article/details/45649399具体的这篇博客也写的很清楚了,在这就具体说一说我这个算法的思路好了。1.让用户输入两个大整数以及它们的长度。2.创建一个二维数组...原创 2018-11-04 19:29:05 · 1195 阅读 · 0 评论 -
str-和mem-的一些库函数实现
1.实现strcpychar* my_strcpy(char* dest, const char* src){ assert(dest); assert(src); char* tmp = dest; while ((*dest++ = *src++) != '\0') ; return tmp;}2.实现strcatchar* my_strcat(char* dest,...原创 2018-11-18 19:00:44 · 259 阅读 · 0 评论 -
实现三子棋游戏
1. 首先在game.c中构建一个菜单,供玩家选择,提供两个选项:1.play 0.exit ,简单测试一下能否编译调试。#define _CRT_SECURE_NO_WARNINGS#include"game.h"void menu() { printf("############################\n"); printf("####### 1. pal...原创 2018-10-21 15:40:53 · 248 阅读 · 0 评论 -
C语言基本代码练习4
1. 求0-999之间的“水仙花数”,153 = 1^3 + 5^3 + 3^3.int main(){ int n, i, j, k; printf(&amp;quot;0-999之间的“水仙花数”有:&amp;quot;); for (n = 100; n &amp;amp;lt;= 999; n++) { i = n / 100; j = n / 10 - i * 10; k = n % 10; if (n原创 2018-09-25 20:05:52 · 283 阅读 · 0 评论 -
Mystrlen&Mystrcat
1.实现strlen的函数功能#define _CRT_SECURE_NO_WARNINGS#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;string.h&amp;gt;int MyStrlen(char * a){ int i = 0; while (*a != '\0') { i++; a++; } return i;}i原创 2018-09-30 22:57:30 · 308 阅读 · 0 评论 -
C语言基本代码练习6
1. 递归求阶乘(5!)static int f(int n) { if (n == 1) // 递归终止条件 return 1; return n*f(n - 1); }int main(){ printf(&amp;amp;amp;quot;5! = %d&amp;amp;amp;quot;, f(5)); system(&amp;amp;amp;quot;pause&a原创 2018-10-01 18:29:31 · 778 阅读 · 0 评论 -
C语言基本代码练习7
1.求n*n矩阵对角线元素之和#define N 2main(){ int a[N][N], sum = 0; int i, j; printf(&amp;amp;quot;输入矩阵元素:\n&amp;amp;quot;); for (i = 0; i &amp;amp;amp;lt; N; i++) { for (j = 0; j &amp;amp;amp;lt; N; j++) {原创 2018-10-02 15:56:40 · 213 阅读 · 0 评论 -
倒序数组元素&杨辉三角形
1.将数组元素倒序输出#define _CRT_SECURE_NO_WARNINGS#include &amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;gt;int main(){ int arr[5] = { 0,1,2,3,4 }; int i = 0; for (i = 4; i &amp;amp;amp;amp;gt;= 0; i--) { printf(&原创 2018-10-03 21:37:23 · 390 阅读 · 0 评论 -
C语言基本代码练习2
1.输入某年某月某日,判断这是某年的第几天int main(){int i, sum; int y, m, d;int arr[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };printf(&amp;amp;amp;amp;quot;请输入年 月 日:&amp;amp;amp;amp;quot;);scanf(&amp;amp;amp;amp;quot;%d %d %d&a原创 2018-09-21 23:01:58 · 483 阅读 · 0 评论 -
C语言基本代码练习3
1.给定两个整形变量的值,将两个值的内容进行交换方法一:int main() {int q, p, k;q = 2; p = 4;k = q; q = p; p = k;printf(&amp;amp;amp;quot;q=%d,p=%d&amp;amp;amp;quot;, q,p);}方法二:(不可以临时创建变量)int main() {int q, p;q = 2; p = 4;q = q^p;p = q^p;原创 2018-09-22 18:35:08 · 180 阅读 · 0 评论 -
二进制、八进制、十进制转化
1.八进制转十进制#define _CRT_SECURE_NO_WARNINGS#include &amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;lt;string.h&amp;amp;amp;amp;gt;int main(){ char str[8] = { 0 }, *p = str; int n; get原创 2018-10-05 17:43:26 · 244 阅读 · 0 评论 -
猜数字游戏
随机产生一个数,猜到即获胜(可猜无限次)void menu() //菜单{ printf("###############################\n"); printf("####### * 1. play ########\n"); printf("####### * 0. exit ########\n"); printf(&q原创 2018-09-28 17:27:14 · 250 阅读 · 0 评论 -
二分法查找
二分查找:即每次用比较区域中间的数值和要查找的数值作比较。用函数调用,程序更加简洁,可移植性增强。令查找这个函数模块返回一个数字来判断查找结果,更加灵活清晰!int search( int arr[], int key, int left,int right) //二分查找的函数{ while (left &lt;= right) { int mid = left + (ri...原创 2018-09-28 18:18:59 · 6947 阅读 · 3 评论 -
C语言基本代码练习5
1. 模拟登陆系统int main(){ int i = 0; for (i = 0; i &amp;amp;lt; 3; i++) { char a = getchar(); if (0 == strcmp(a, &amp;quot;haha123&amp;quot;)) { printf(&amp;quot;欢迎登陆!&amp;quot;); break; } els原创 2018-09-28 19:11:34 · 196 阅读 · 0 评论 -
结构体的小练习
1.输入输出学生数据#define _CRT_SECURE_NO_WARNINGS#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#define N 2struct student{ char num[2]; char name[8]; int score[4];}STU[N] = {0};input(stu){ st...原创 2018-10-07 22:16:01 · 202 阅读 · 0 评论 -
选择排序&冒泡排序&strcmp
1. 选择排序int main(){ int arr[] = { 3,6,5,23,4,2,7,8 }; int i, j, p = 0; int len = sizeof(arr) / sizeof(arr[0]) ; for (i = 0; i &amp;amp;lt; len - 1; i++) { int min = arr[i]; for (j = i + 1; j &amp;amp;l...原创 2018-09-29 21:47:05 · 2047 阅读 · 1 评论 -
C语言 结构体内存对齐、位段、枚举、共用体
自定义类型除了C语言自身带数据类型,还有自定义的数据类型,比如:结构体、枚举、联合。指针、数组也可以看作自定义的数据类型。结构体结构的每个成员可以是不同类型的变量。结构体和数组类似,可以整体初始化,但不能整体赋值。结构体名可以忽略,叫做匿名结构体。后边的定义的变量也可以忽略。但不可以同时忽略。结构体分配内存的时候必须考虑内存对齐。结构体传参最好是传结构体地址,提高效率。—内...原创 2018-11-24 21:37:43 · 329 阅读 · 0 评论