C语言题集与小项目
文章平均质量分 61
码农印象
修炼的过程中,最好有人和你并肩而行,共同成长!努力做一个文邹邹的工具人,你做得越多,你知道的越多......
展开
-
【C语言】经典小游戏--三子棋(井字棋)平民版VS豪华版
致读者: 三子棋(井字棋)---记得小时候经常玩的就是这个游戏,虽然不是多么高大尚,但也饶有趣味!emmmmmm.......大概就是这个样子吧这个小游戏你还知道怎样玩吗?我们一起简单回顾一下:将三子棋看作3x3的一个二维数组,由玩家和电脑分别填充这个数组。当行、列、叉能够达到三连时,就判断输赢。 默认玩家先行且棋子为 ‘ X ’,电脑后手棋子为 ‘ 0 ’。 《平民版》代码如下://项目名称:三...原创 2018-04-17 23:17:57 · 3705 阅读 · 2 评论 -
【C语言】Max喝汽水问题
最多喝汽水数问题:每瓶汽水1元,两个空瓶子换一瓶汽水,现在有20元,最多喝多少瓶汽水?思路:20->10->5->2…1->1…1->1 知道没有空瓶子,即遍历结束。原理:20瓶汽水再要20个空瓶子,则可以喝40瓶汽水,但是最后遍历到一瓶的时候,则必然有一个空瓶子不能换得汽水,则最终的汽水数为39瓶,余下一瓶空瓶子。#include <stdio.h&g...原创 2018-10-21 03:11:05 · 600 阅读 · 0 评论 -
【C语言】出现两个单次出现的数
单次出现的数问题:一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字,编程实现。思路:因为数组中存在两个不相同的数,所以挨个异或必然有一个大于0的数,所以我们找出异或值的一个为1的数位,按照该数位是否为0将数组分成两个子数组A和B,A中的数有异或结果不为1的一个元素,B含有的元素中有两个不同数字的另外一个,其他也都是两两相同的数字,再分别进行异或,即可求得两个数。#i...原创 2018-10-21 03:17:43 · 351 阅读 · 0 评论 -
【C语言】递归实现字符串逆置
递归实现字符串逆置递归:程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。...原创 2018-10-21 03:19:26 · 1762 阅读 · 0 评论 -
【C语言】模拟实现printf函数
模拟实现printf函数思路:要实现printf函数,首先我们应该知道printf的功能,MSDN中是这样描述的Print formatted output to the standard output stream.即格式化输出打印标准输出流,Each of the functions returns the number of characters printed, or a negativ...原创 2018-10-21 03:22:27 · 3701 阅读 · 1 评论 -
【C语言】main函数模拟计算器
模拟计算器问题:使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。思路: 首先应该清楚main函数里面至少有两个参数,argc和argv,要实现加减乘除,可以先将-a,-s,-m,-d所表示的运算用±*/来替换,通过判断输入的符号与-a,-s,-m,-d一一对...原创 2018-10-23 14:34:30 · 2303 阅读 · 0 评论 -
【C语言】 八皇后
巴斯塔三角形,其实也就是杨辉三角,很有趣的一个算法题。我是定义两个一维数组来完成的,最后在排版上弄的漂亮一点,具体的思路在代码中注释。#include&amp;amp;amp;lt;stdio.h&amp;amp;amp;gt;#include&amp;amp;amp;lt;Windows.h&amp;amp;amp;gt;void Yang_Hui(int i,int j,int arr1[17],int arr2[17]){原创 2018-10-21 02:55:20 · 634 阅读 · 0 评论 -
【C语言】strcpy/strcat/strcmp/memcpy/memmove(n)
strcpy/strncpy/strcat/strncat/strcmp/strncmp/memcpy/memmove功能介绍如下:strcpy:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间,src和dst所指内存区域不可以重叠且dst必须有足够的空间来容纳src的字符串,返回指向dst的指针。strncpy:是 C语言的库函数之一,char *strncpy...原创 2018-10-23 16:10:36 · 302 阅读 · 0 评论 -
【C语言】矩阵中寻找key
二维数组中寻找key问题:有一个二维数组.----杨氏矩阵数组的每行从左到右是递增的,每列从上到下是递增的.在这样的数组中查找一个数字是否存在,时间复杂度小于O(N)。思路:这道面试题很明显加上了复杂度的概念,O(N)也就是说他的复杂度随事物数量的增加呈线性变化,也就是说说这道题的时候,不能嵌套循环。那么我们就不能像以前那样逐个遍历,寻找矩阵中key的值,首先拿key与矩阵第一行末尾的数来比较...原创 2018-10-23 16:15:52 · 526 阅读 · 0 评论 -
【C语言】求杨辉三角的6种方法
前言形如下图的三角形,其实质是二项式(a+b)的n次方展开后各项的系数排成的三角形,它的特点是左右两边全是1,从第二行起,中间的每一个数是上一行里相邻两个数之和。这就是经典的杨辉三角,下面就为大家介绍一下杨辉三角的6中解法。11 11 2 11 3 3 11 4 6 4 1…方法一:#include<stdio.h>void...原创 2018-10-20 22:25:45 · 25031 阅读 · 9 评论 -
【C语言】经典面试题之交换两个整形变量的值
题目 给定两个整形变量,然后交换两个变量的值。方式一:定义一个临时变量tmp,然后根据临时变量交换两个变量的值 方式二:不设立临时变量,用加法操作交换两个变量的值(易造成栈溢出)* 方式三:用异或运算交换两个变量的值。(异或就是相同取0,不同取1) * 异或运算基于以下几个性质:任意变量x与自身异或结果为0,即:x^x = 0任意变量x与0进行异或运算,结果...原创 2018-08-22 23:38:50 · 650 阅读 · 0 评论 -
【C语言】猜灯谜问题
题目 小明很喜欢猜谜语。 最近,他被邀请参加了X星球的猜谜活动。 每位选手开始的时候都被发给777个电子币。 规则是:猜对了,手里的电子币数目翻倍, 猜错了,扣除555个电子币, 扣完为止。 小明一共猜了15条谜语。 战果为:vxvxvxvxvxvxvvx 其中v表示猜对了,x表示猜错了。 请你计算一下,小明最后手里的电子币数目是多少(最后电...原创 2018-08-28 22:59:30 · 2679 阅读 · 1 评论 -
【C语言】杨辉三角(等腰三角)
前言:杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。等腰杨辉三角雏形:代码如下:#include <stdio.h&...原创 2018-04-12 18:18:20 · 21801 阅读 · 4 评论 -
【C语言】打印出一箭穿心图案(简单版)----gotoxy函数
在C语言贴吧看到一个人要用dos打印一个爱心,我试了一下。贴出样图:#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <windows.h>void GotoXY(int x, int y) //设定输出位置{ COORD c; /*COORD是Windows API中定义的一种结构,表示...原创 2018-04-13 21:16:40 · 14848 阅读 · 0 评论 -
【C语言】经典小游戏--扫雷
致读者:扫雷,是一个Windows平台下一个经典的小游戏,今有兴趣玩了几把后,就利用所学二维数组的相关知识模拟实现了一个“扫雷游戏”。由于学识浅薄,界面有点简陋,尽请谅解!【项目思路】:1、首先想一想扫雷游戏在Windows平台下是如何实现的。 2、其次通过观察游戏,我们可以想到需要用两个二维数组来实现扫雷的功能。 3、游戏刚开始,需要需要显示棋盘,用“*”遮盖雷的坐标,所以要有一个填充棋盘的函数...原创 2018-04-21 20:49:41 · 1391 阅读 · 0 评论 -
【C语言】宏定义(写一个宏可以将一个数字二进制的奇数位和偶数位交换)
1.写一个宏可以将一个数字的奇数位和偶数位交换。 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>#define FSWAP(N) (((N&0X55555555)<<1)|((N&0xaaaaaaaa)>>1))int main(){ int n = 0; printf...原创 2018-04-27 19:38:10 · 4244 阅读 · 0 评论 -
【C语言】静态(动态)顺序表-通讯录
前言 近期学习了自定义类型结构体以及顺序表,所以就试着利用顺序表模拟实现了一个通讯录。简要功能如下: 初始化通讯录 添加联系人 查找联系人 删除联系人 修改联系人 按姓名排序 清空联系人 联系人列表 退出 项目效果展示:静态顺序表## 参考代码: ### Contact.h/*****...原创 2018-06-03 13:00:29 · 1552 阅读 · 0 评论 -
【C语言】动态顺序表 + 文件存储 = 通讯录
前言 在前面曾用静态、动态顺序表两种方式实现通讯录,但每次运行程序我们都得重新输入,之前输入的成员信息并不会保存,而现实中,通讯录里的信息创建后是永久保存的,除非你删除它,今天我们就来模拟一下如何将数据存储在文件中,当下一次运行时加载一下即可,这种做法更贴合实际。 程序中会用到与文件操作相关的函数,提前介绍一下: fopen 它的函数原型为:FILE*...原创 2018-06-03 13:07:08 · 777 阅读 · 0 评论 -
【C语言】使用main函数的参数,实现一个整数计算器
题目 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数, 第一个参数“ - a”选项执行加法,“ - s”选项执行减法,“ - m”选项执行乘法,“ - d”选项执行除法,后面两个参数为操作数。例如:输入test.exe - a 1 2 ,执行1 + 2输出3。参考代码 #include <stdio.h> #inc...原创 2018-06-03 13:13:13 · 616 阅读 · 0 评论 -
【C语言】C/C++注释转换
前言 编写代码时会有多种注释方式,但有的编辑环境不识别其他的注释方式,因此做个小项目来实现将注释方式统一的改为一种。本次注释转换这个小项目就是将所有的C注释全部转换为C++注释。概述 要实现这个转换就要先理清实际过程中代码都有哪几种状态!所以先来列一个状态转换机来梳理一下什么情况是什么状态。 简单考虑有以下几种状态: 无状态:代码的正文部分 ...原创 2018-06-03 23:21:38 · 462 阅读 · 0 评论 -
【C语言】猜数字游戏vs折半查找
题目 1.完成猜数字游戏。 2.写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找) 3.编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。 4.编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符...原创 2018-08-18 00:10:02 · 550 阅读 · 0 评论 -
【C语言】菱形vs水仙花数vs括号匹配vs回文判断
题目: 1.在屏幕上输出以下菱形图案: 2.求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。 3.求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222 4.编写一个程序,它从标准输入读取C源...原创 2018-08-18 01:01:53 · 365 阅读 · 0 评论 -
【C语言】斐波那契数列四种优化求解
题目: 使用递归和非递归的方法分别实现求第n个斐波那契数,那么什么是斐波那契数。斐波那契数列指的是这样一个数列:0 、1、1、2、3、5、8、13、21,后面的每一个数是前面两个数的和。(由于数列增长快,int型就只能算到近50位,所以尽可能采用long long型)* 方法一:递归实现//时间复杂度O(N^2)//空间复杂度o(N)long long fi...原创 2018-08-19 00:22:40 · 19720 阅读 · 5 评论