C语言
123.com
这个作者很懒,什么都没留下…
展开
-
malloc/calloc/realloc之间区别详述
1. malloc/calloc/realloc和free介绍:1. malloc函数malloc函数可以从堆上获得指定字节的内存空间,其函数声明如下:void * malloc(int n);参数释义:n:申请空间大小(单个类型大小*总个数)函数详述:其中,形参n为要求分配的字节数。如果函数执行成功,malloc返回获得内存空间的首地址;如果函数执行失败,那么返回值为NULL。...原创 2018-12-26 17:17:34 · 11304 阅读 · 2 评论 -
C语言模拟实现str系列函数
1.实现strcpy#include <stdio.h>#include <stdlib.h>#include <assert.h>char *my_strcpy(char *dest, const char *src){char *ret = dest;assert(dest != NULL);assert(src != NULL);whi原创 2018-11-08 16:59:33 · 348 阅读 · 0 评论 -
三子棋
三子棋#include <stdio.h>#include <stdlib.h>#include<string.h>#include <time.h>#pragma warning (disable:4996)#define ROW 3#define COL 3void menu(){ printf("##############...原创 2018-11-05 12:31:36 · 223 阅读 · 0 评论 -
扫雷
扫雷*#include <stdio.h>#include <stdlib.h># include <time.h>#include <string.h>#pragma warning (disable:4996)#define ROWS 12//设置行列#define COLS 12//设置行列#define DEFALL_MIN...原创 2018-11-05 12:29:20 · 463 阅读 · 0 评论 -
在屏幕上打印杨辉三角。
在屏幕上打印杨辉三角。11 11 2 11 3 3 1分析:首先第一列都为1,而且当行列相等时,对应位置也为1中间位置正好是对应上一行元素和对应上一行元素的之前元素相加,例如第四行的第一个3=1+2,第二个3=2+1;#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;int main(){int i = 0;int j = ...原创 2018-11-05 12:19:34 · 199 阅读 · 0 评论 -
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个 嫌疑犯的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个 嫌疑犯的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说真话#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){char ki...原创 2018-11-05 12:10:57 · 310 阅读 · 0 评论 -
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三; E选手说:我第四,A
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。分析:每个人的可能结果为五种,他们相互关联,所以要用到循环嵌套其次根据每个人说的话最后进行判断,要用到if语句,#include <...原创 2018-11-05 12:08:04 · 507 阅读 · 0 评论 -
#编程实现: 一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。 请找出这个数字。(使用位运算)
编程实现:一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(使用位运算)#include <stdio.h>int main(){int b = 0;int arr[9] = { 0, 0, 2, 2, 3, 3, 4, 4, 1};for (int i = 0; i < 9; i++){b = b^arr[i];// 1^1=0 ...原创 2018-11-05 11:58:58 · 134 阅读 · 0 评论 -
#有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
有一个字符数组的内容为:“student a am i”,请你将数组的内容改为"i am a student".要求:不能使用库函数。只能开辟有限个`空间(空间个数和字符串的长度无关)。整体思路:1.先把字符串整体转换一下 ,结果为i ma a tneduts2.再把其中每个单词进行转置,结果为i am a student#include<stdio.h>void res...原创 2018-11-05 11:49:14 · 285 阅读 · 0 评论 -
unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。 如: 在32位机器上25这个值包含下列
标题unsigned int reverse_bit(unsigned int value);这个函数的返回值value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000程序结果返回:2550136...原创 2018-11-05 11:40:34 · 170 阅读 · 0 评论 -
goto的简单使用
goto可以一次跳出多层循环,但是这种情况是break达不到的,它只能从最内层循环退出到上一层的循环。#include &lt;stdio.h&gt;#include &lt;string.h&gt;#include &lt;windows.h&gt;#pragma warning(disable:4996int main(){ char input[10] = { 0 }; sys.原创 2018-10-29 11:47:47 · 277 阅读 · 0 评论 -
写一个函数实现对数组的二分查找
#include &lt;stdio.h&gt;#include &lt;string.h&gt;#include &lt;windows.h&gt;#pragma warning(disable:4996int bin_search(int arr[], int left, int right, int key){ int mid = 0; while (left &原创 2018-10-28 22:04:30 · 427 阅读 · 0 评论 -
不允许创建临时变量,交换两个数的内容
有两种方法:第一种异或法:// An highlighted blockvar foo = 'bar';#define _CRT_SECURE_NO_WARNINGS#include <stdlib.h>#include<stdio.h>void Exchange(int *x, int *y){ *x^= *y; *y =*x^*y; *x ...原创 2018-10-25 15:16:22 · 108 阅读 · 0 评论 -
#给定两个整形变量的值,将两个值的内容进行交换。
给定两个整形变量的值,将两个值的内容进行交换// An highlighted blockvar foo = 'bar';#include &lt;stdlib.h&gt;#include&lt;stdio.h&gt;void Exchange(int *x, int *y){ int temp= *x; *x = *y; *y= temp;}int main(){ in...原创 2018-10-25 15:05:38 · 251 阅读 · 0 评论 -
在屏幕上输出以下图案: * *** ***** ******* ********* *********** ************* ***********
在屏幕上输出以下图案: * ****************************************************************************** *** *首先分析,输出的是奇数行,输出的个数为奇数个星号;总体有三行;那么可以用循环去解决,循环里面套循环。类似于输出乘法口诀。// A code blockvar foo ...原创 2018-10-25 14:39:03 · 6779 阅读 · 0 评论 -
测试大小端
大端模式:是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式类似于把数据当作字符串顺序处理。地址由小向大增加,而数据从高位往低位放;记忆:高低大,相异大端小端模式:是指数据的高位保存在内存的高地址中,而数据的低位保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。低低...原创 2019-02-18 15:00:10 · 566 阅读 · 0 评论