C
Young-_-D
YoungD
展开
-
C语言程序实现:十六进制转换为八进制(绝对用心仔细)
题目从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。分析:将十六进制是转换为十进制再将十进制转换为八进制十六进制到十进制的转换代码:int Sixteen_Ten(char *p){ int k =0; int i =0; int sum=0; int len ...原创 2019-09-07 13:29:57 · 7055 阅读 · 1 评论 -
C语言程序实现:"student a am I"转换为"I am a student".
题目:有一个字符数组的内容为:“student a am i”,请你将数组的内容改为"i am a student".要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。分析:先拿到这个题目第一时间想到的是逆序也就是 i ma a tneduts;随后是不是有些懵逼,继续观察;在逆序的基础上我们将每个单词再次逆序(i am a student)是不是正确了;...原创 2019-09-07 10:02:54 · 788 阅读 · 0 评论 -
c语言之指针基础概念
指针:简单来说就是是个变量,存放内存单元的地址。也就是说它能找到以它为地址的内存单元。32位系统:任何类型的指针大小都为4个字节(因为内存 32/8 = 4)64位系统:任何类型的指针大小都为8个字节(因为内存 64/8 = 8)大小端大端:低地址存放高数据小端:低地址存放低地址定义指针:int *p = NULL;此时的 * 是和数据类型连接在一起为了说明p为一个int的指针。...原创 2019-09-05 22:58:52 · 284 阅读 · 0 评论 -
c语言之操作符
操作符的分类:算术操作符:+ , -, * ,/ , %(模);移位操作符:计算机当中位运算速度>±*/>> (右移) :如右移最高位补符号位<<(左移)逻辑移位:指逻辑左移和逻辑右移,移出的空位用0来补算数移位:分有符号数和无符号数,无符号数等同于逻辑移位;对于有符号数,左移等同于逻辑左移,算术右移补的是符号位,正数补0,负数补1位操作:&...原创 2019-09-04 22:51:00 · 114 阅读 · 0 评论 -
C语言程序实现:扫雷
game.h#ifndef __GAME_H__#define __GAME__H__#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>#define row 12#define col 12#define COUNT 10//棋盘中雷的总数...原创 2019-07-29 20:10:33 · 141 阅读 · 0 评论 -
C语言程序实现:迷你三子棋
完成一个简单的小程序(三子棋)先简单介绍一下三子棋的规则,方便我们接下来的编程和理解。规则如下:在九宫格棋盘上,只要将自己的三个棋子走成一条线(横、竖、对角线),对方就算输了。三子棋主要运用函数传参和数组来完成。当然一个游戏首先得有他到菜单界面,为用户提供选择游戏和退出。void menu(){ printf("*********************\n"); printf("...原创 2019-07-29 15:15:09 · 137 阅读 · 0 评论 -
C语言程序实现:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?//第10次落地,反弹9#include<stdio.h>int main(){ int i = 0; double high = 100; //起始高度 double sum = 0; //经过距离 for (i = 1; i < ...原创 2019-07-18 16:24:23 · 2581 阅读 · 0 评论 -
C语言之指针初阶总总总结
指针是C语言中一个重要的组成部分,使用指针编程有以下优点:(1)提高程序的编译效率和执行速度。(2)通过指针可使用主调函数和被调函数之间共享变量或数据结构,便于实现双向数据通讯。(3)可以实现动态的存储分配。(4)便于表示各种数据结构,编写高质量的程序。指针的运算(1)取地址运算符&:求变量的地址(2)取内容运算符*:表示指针所指的变量(3)赋值运算 ·把变量地址赋...原创 2019-09-08 14:21:52 · 929 阅读 · 0 评论 -
C语言之数组指针与指针数组以及指针与数组的关系
絮:本来是理解数组指针,指针数组和指针与数组的关系的,本来今天想让自己加深理解一下,结果跳进坑来了,脑子有点乱。整理一下,让自己清醒一些。如果有人翻到这边博文我由衷给你一个建议,学习C语言一定要平心静气,不能急,所谓欲速则不达。数组指针:是指一个指向数组的指针,它其实还是一个指针,只不过是指向数组而已;(就像字符指针,它只不过是一个:指向字符的指针)注意:定义数组变量arr;arr与&...原创 2019-09-08 23:22:01 · 252 阅读 · 0 评论 -
C语言之作用域与存储类型
1.c语言可以确定4种不同类型的作用域:代码块作用域在代码块中定义的变量,具有代码块作用域。作用范围是从变量定义的位置开始,到标志该代码块结束的右大括号(})处文件作用域任何在代码块之外声明的标识符都具有文件作用域,作用范围是从它们的声明位置开始,到文件的结尾处都是可以访问的原型作用域原型作用域只适用于那些在函数原型中声明的参数名 void function(int...原创 2019-09-11 22:08:37 · 345 阅读 · 0 评论 -
C语言之动态内存管理
malloc(): 申请的内存是存放在堆上;malloc函数向系统申请size字节的内存空间原型: void *malloc(size_t size)free(): free函数释放p参数指向的内存空间。该内存空间必须是由malloc,calloc或realloc函数申请的。原型: void free(void *p);注意:该函数不会改变p参数的值,所以调用后它依然指向原来的地方(变为...原创 2019-09-11 22:21:32 · 117 阅读 · 0 评论 -
C语言之结构体与单链表
结构体(抽象)和数组一样是聚合类型,进行整体初始化只有一次是在定义的时候//自我理解结构体就是一种自己定义的数据类型定义时建议使用typedef(类型重命名):typedef struct Student{ char name[20]; int age;}Stu; //此时Stu是数据类型结构体成员可以是变量,数组,指针,结构体。结构体自应用只可以是指针的形式;eg:str...原创 2019-09-13 00:59:46 · 1717 阅读 · 0 评论 -
C语言之内存布局
C语言的内存布局规律,根据内存地址从低到高分别划分为:代码段(Text segment):通常是指用来存放程序执行代码的一块内存区域。这部分区域大小在执行代码之前就已经确定了,并且内存区域通常属于只读,在代码段中,也可能包含一些只读的常数变量,例如字符串变量等。数据段 (Initialized data segment):通常用来存放已经初始化的全局变量和局部静态变量;BSS段(Unin...原创 2019-09-14 00:09:53 · 563 阅读 · 0 评论 -
C语言之补漏(1)
typedef1.define与typedef区别?相比起宏定义的直接替换,typedef是对类型的封装(通俗说就是对类型起一个别名)2.typedef可以给多个别名typedef int tint,*tint;3.复杂数据类型int (*p)[3];typedef int (*ptr_to_array)[3];int (*fun)(void);typedef int (...原创 2019-09-19 22:04:58 · 239 阅读 · 0 评论 -
C语言之数据存储
c语言中没有字符串类型void *类型可以保存地址,但不能进行解引用数字.字符在内存中存储,以补码的形式存储大小端:大端:低地址存放高数据小端:低地址存放低数据为什么有大端与小端?答:由于寄存器宽度大于一个字 节,那么必然存在着一个如果将多个字节安排的问题判断大小端:int IsLitte() //是小端返回1,否则返回0{ int a = 0x12345678; ...原创 2019-09-26 23:00:56 · 245 阅读 · 0 评论 -
C语言程序:单链表实现一元多项式相加(不带头节点)
*序:*看了好多一元多项式的加减,基本都是带头节点的,同时自己不知道为什么就是喜欢不带头结点的链表,便尝试去实现了,果然相对而言(不带头的)就是麻烦。其实过程都一样。创建两个链表La与Lb利用尾插法对两个链表进行赋值然后就到了相加的函数直接上代码:#include<stdio.h>#include<stdlib.h>#include<assert.h...原创 2019-09-27 20:10:25 · 784 阅读 · 0 评论 -
C语言之指针进阶
字符串常量放在rodata段,相同的字符串只占一份内存空间。所以:int *p1 = "hello!";int *p2 = "hello!";if(p1 == p2) //正确;&数组名 与 数组名数组名:数组首元素的地址;&数组名:整个数组的地址;int arr[10];int *p3 = arr;int (*p4)[10] = &ar...原创 2019-09-28 17:17:17 · 302 阅读 · 0 评论 -
C语言程序实现:正整数分解质因数
将一个正整数分解质因数。例如:输入90,打印出90=2335。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第...原创 2019-07-18 15:55:01 · 2142 阅读 · 0 评论 -
C语言程序实现:简单排序与最大公约数
简单排序桶排序:也就是将对应的数存放入相应的数组内#include<stdio.h>int main(){ int arr[5] = {5,9,2,5,1}; int brr[10] = {0}; int i = 0; for(i = 0 ;i < 5;i++) { brr[ arr[i] ]++; } for(i =0 ;i < 10;i...原创 2019-07-16 16:21:27 · 258 阅读 · 0 评论