
初始C语言#算法初步
hy_小小可
爱好编程的小菜鸟
展开
-
C语言操作符总结
C语言的操作符总共分为10类,它们分别为:1.算术操作符2.移位操作符3.位操作符4.赋值操作符5.单目操作符6.关系操作符7.逻辑操作符8.条件操作符9.逗号表达式10.下标引用、函数调用和结构成员算术操作符 + - * / %使用时注意事项:%运算符的两个操作数必须必须为整数移位操作符<< //左移操作符&...原创 2019-11-14 23:52:05 · 156 阅读 · 0 评论 -
【C语言】整型提升
什么叫整型提升?C的整形算术运算总是至少以缺省整形类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数再使用之前被转转为普通整型,这种转换称为整型提升。整型提升的意义:表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度一般就是int的字节长度,同时也是CPU的通用寄存器的长度。因此,即使两个char类型的相加,在CPU执行时实际上也...原创 2019-11-14 23:20:41 · 518 阅读 · 1 评论 -
【C语言】扫雷小游戏。第一次扫雷不被炸死,若坐标周围没雷则实现展开
实现思路:1.定义两个字符型数组mine 用来存放电脑随机布的雷,show 用来向玩家展示游戏的界面。2.布置雷用rand()随机产生合法的坐标,需要注意的是:例如 rand()%10它产生的随机数是0-9而不是0-10。3.保证第一步 不会被炸死这里我采用指针的方法,在布雷的时候提前设置指针,在第一次遇到雷,用指针改变它。4.排查雷,若坐标周围没雷则实现展开这个目标我认为是最难的...原创 2019-11-04 20:34:24 · 347 阅读 · 0 评论 -
【C语言】用递归的方式实现二分查找(折半查找)
思路:1.求中间位置2.用data与中间位置的元素进行比较相等,找到了–>返回小于,data可能在[left,right)的左半侧,到左半侧继续二分查找大于,data可能在[left,right)的右半侧,到右半侧继续二分查找代码实现#include<stdio.h>#include<Windows.h>void BinarySearch(int* ...原创 2019-11-03 15:38:14 · 1889 阅读 · 0 评论 -
【C语言】三子棋游戏
用C语言实现三子棋游戏为了使代码的逻辑清晰易懂,这里采用多文件形式。由main.c game.h game.c三个文件组成。main.c实现游戏的逻辑game.h是函数的声明和头文件的声明game.c是函数的实现代码实现game.h#pragma once#include<stdio.h>#include<Windows.h>#includ...原创 2019-10-31 23:45:11 · 186 阅读 · 0 评论 -
【C语言】(递归)汉诺塔问题
问题:假设有3根柱子,依次标号为A,B,C ,A柱上从上至下从小到大依次放置着n个圆盘,现需借助B柱将圆盘全部移到C柱上,要求每次只能移动一块圆盘,且不能出现大盘子在小盘子上方的情况。分析:设移动盘子数为n,为了将这n个盘子从A杆移动到C杆,可以做以下三步:(1)以C盘为中介,从A杆将1至n - 1号盘移至B杆;(2)将A杆中剩下的第n号盘移至C杆;(3)以A杆为中介,从B杆将1至n - ...原创 2019-10-25 23:15:41 · 242 阅读 · 0 评论 -
【C语言】(递归实现)编写一个函数 reverse_string(char * string) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数。
题目: 编写一个函数 reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中的字符串操作函数。#include<stdio.h>#include<Windows.h>void reverse_string(char arr[]){ if (*arr != '\0') { reve...原创 2019-10-25 21:57:09 · 267 阅读 · 0 评论 -
【C语言】创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。
题目:创建一个数组,实现函数init()初始化数组、实现empty()清空数组、实现reverse()函数完成数组元素的逆置。要求:自己设计函数的参数,返回值。#include<stdio.h>#include<Windows.h>void Print(int, int);void init(int arr[], int sz){ int i = 0;...原创 2019-10-21 23:14:27 · 140 阅读 · 0 评论 -
【C语言】在屏幕上打印菱形图案
题目:在屏幕上打印菱形图案如: * *** ***** ******* ********* ************************ *********** ********* ******* ***** *** *分析:这道题需要仔细观察图案的特点,我们可以把它分为上下两个部分,每次打印一行,研究...原创 2019-10-18 00:34:21 · 290 阅读 · 0 评论 -
【C语言】编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
题目:编写一个程序,可以一直接收键盘字符如果是小写字符就输出对应的大写字符如果接收的是大写字符,就输出对应的小写字符如果是数字不输出。分析:从键盘接收和输出字符需要用到getchar()和putchar()函数还需了解小写字符比与其相对应的大写字符ASCii值大32。代码实现#include<stdio.h>#include<Windows.h>int m...原创 2019-10-17 22:13:44 · 499 阅读 · 0 评论 -
【C语言】编写代码模拟三次密码输入的场景,最多能输入三次密码,密码正确,提示“登录成功”, 密码错误, 可以重新输入,最多输入三次,三次均错,则提示退出程序。
题目:3.编写代码模拟三次密码输入的场景。最多能输入三次密码,密码正确,提示“登录成功”, 密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。分析:输入三次需要用到循环,但是如何判定密码是否正确呢?在C语言里需要用到strcmp()这个函数,当用到这个函数还需引入#<string.h>头文件。代码实现#include<stdio.h>#incl...原创 2019-10-17 00:03:02 · 997 阅读 · 0 评论 -
【C语言】运用折半查找实现在整型有序数组中查找想要的数字
题目:写码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回 - 1.问题分析:这里需要用到折半查找的算法,即将中间元素与想查找的值比较,如果大了就将左边的下标赋值为中间元素下标加1;如果小了就将右边的下标赋值为中间元素加1;代码演示 if (x > arr[mid]) { left = mid + 1; } else if (x < ...原创 2019-10-16 23:54:27 · 1447 阅读 · 0 评论 -
【C语言】完成猜数字游戏
题目:完成猜数字游戏。分析:第一步,首先需要生成菜单第二步,玩游戏难点:如何生成随机数,这里需要生成随机数种子。#include<stdio.h>#include<Windows.h>#pragma warning(disable:4996)#include<time.h>void menu()//菜单{ printf("##########...原创 2019-10-16 23:39:55 · 240 阅读 · 1 评论 -
【C语言】在屏幕上输出以下图案: * *** ***** ******* ********* ***********
题目:在屏幕上输出以下图案:* *** ***** ******* ********* *********** ************* *********** ********* ******* ***** *** * ...原创 2019-10-13 21:50:48 · 7875 阅读 · 1 评论 -
【C语言】编写程序数一下1到100的所有整数中出现多少个数字9正确方法
关于这道题有些博客输出的答案有误错误代码展示 if( i%10 == 9) count++; if( i/10 == 9) count++;这种方法导致99出现了两次最后count的值为20;而正确值应为19。思路分析:1到100之间的数字,9出现有两种情况,第一种在十位,第二种在个位。分别采用整除(i/10)和取余(i%10)实现需要强调的是,这里采用或运算符,它的特点...原创 2019-10-11 00:06:06 · 1262 阅读 · 1 评论 -
【c语言】给定两个整型变量的值,将两个值的内容进行交换的三种方法
#第一种创建临时变量法这种方法是最常用的方法。`#include<stdio.h>#include<Windows.h>#pragma warning(disable:4996)int main(){ int a = 0; int b = 0; printf("请输入a,b的值:"); scanf("%d %d", &a,&b);...原创 2019-10-06 20:30:52 · 1100 阅读 · 0 评论