C语言典型示例
kevin990123
这个作者很懒,什么都没留下…
展开
-
模拟实现strncmp
模拟实现strncmp注意strcmp只比较len个字符是否相等,这里给出了两种方法:ps:本人在调试过程中遇到了前置、后置++问题,结合前置、后置++的特性,要理清判断和自增的顺序来决定使用哪一种++,最好的办法就是多调试走几遍代码,理清每一步的顺序和结果程序代码如下:#define _CRT_SECURE_NO_WARNINGS#define _CRT_SECURE_NO_...原创 2018-11-28 10:39:09 · 416 阅读 · 0 评论 -
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次, 编程找出这两个数字
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次, 编程找出这两个数字程序代码如下:#include <stdio.h>int main(){ int arr[10] = { 1, 2, 9, 3, 7, 3, 2, 5, 5, 7 }; int i = 0; int j = 0; for (i = 0; i ...原创 2018-05-05 15:45:56 · 522 阅读 · 0 评论 -
判断一个字符串是否为另外一个字符串旋转之后的字符串
判断一个字符串是否为另外一个字符串旋转之后的字符串程序代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 7void Change(char *p, char *q){ while (p < q) { ...原创 2018-05-05 15:36:37 · 142 阅读 · 0 评论 -
使用可变参数,实现函数,求函数参数的最大值
使用可变参数,实现函数,求函数参数的最大值程序代码如下:#include <stdio.h>#include <stdarg.h>int Max(int n, ...){ va_list arg; int i = 0; int k = 0; int max = 0; va_start(arg, n);...原创 2018-05-17 21:23:22 · 816 阅读 · 0 评论 -
使用可变参数,实现函数,求函数参数的平均值
使用可变参数,实现函数,求函数参数的平均值程序代码如下:#include &lt;stdio.h&gt;#include &lt;stdarg.h&gt;int Average(int n, ...){ va_list arg; int i = 0; int sum = 0; va_start(arg, n); for (i...原创 2018-05-17 21:19:42 · 578 阅读 · 0 评论 -
模拟实现printf函数
模拟实现printf函数模拟实现printf函数,可完成下面的功能 // //能完成下面函数的调用。 //print(“s ccc d.\n”,”hello”,’b’,’i’,’t’,100); //函数原型: //print(char *format, …) // 程序代码如下:#include &lt;stdio.h&gt;#includ...原创 2018-05-17 21:11:37 · 215 阅读 · 0 评论 -
简单理解—指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针
简单理解—指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针指针数组 指针数组,顾名思义是”指针的数组”,首先这个变量是一个数组,其次,”指针”修饰这个数组,意思是说这个数组的所有元素都是指针类型,在32位系统中,指针占四个字节。举个例子:char *str[4] = {"hello", "world", "work", "原创 2018-05-08 22:48:35 · 205 阅读 · 0 评论 -
实现一个函数,可以左旋字符串中的k个字符
–实现一个函数,可以左旋字符串中的k个字符 如: ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 程序代码如下:#include <stdio.h>void change(char *p, char *q){ while (p < q) { char tmp =...原创 2018-04-17 21:56:16 · 130 阅读 · 0 评论 -
输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分(二)
输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分(其二)程序代码如下:#include <stdio.h>#define N 10void change(int arr[],int a, int b){ int tmp = arr[a]; arr[a] = arr[...原创 2018-04-17 21:05:52 · 681 阅读 · 0 评论 -
总结——c语言中的操作符
c语言中的操作符操作符的分类: 算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用、函数调用和结构成员算术操作符 + - * / % 1.除了%以外,其他几个操作符既可以作用于整数,也可以作用于浮点数。 2.对于/操作符,当有浮点数参...原创 2018-03-29 16:33:41 · 193 阅读 · 0 评论 -
杨氏矩阵 :有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的。编写程序,在这样的数组中查找一个数字是否存在
杨氏矩阵 :有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的。编写程序,在这样的数组中查找一个数字是否存在程序代码如下:#include <stdio.h>#define ROW 3#define COL 4int Find(int arr[ROW][COL], int *row, int *col, int n){ *ro...原创 2018-04-17 20:59:16 · 483 阅读 · 0 评论 -
编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?程序代码如下:#include <stdio.h>int count_diffrent_bits(int x, int y){ int i = 0; int tmp =x ^ y; int count = 0; while (tmp) ...原创 2018-03-28 19:16:40 · 233 阅读 · 0 评论 -
如何编写程序,输出一个整数的每一位?
编写程序,输出一个整数的每一位程序代码如下:#include <stdio.h>void print_integer(int num){ int i = 0; while (num) { if (num < 0) { num = -num; } ...原创 2018-03-28 18:59:42 · 3429 阅读 · 0 评论 -
编程实现:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以换多少汽水。
编程实现:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以换多少汽水。程序代码如下:#include <stdio.h>#define P 1 //汽水的单价#define N 2 //换一瓶汽水所需的空瓶个数//SodaConvert函数返回用空瓶换来的汽水个数int SodaConvert(int x){ int ret =...原创 2018-05-05 22:31:35 · 6689 阅读 · 1 评论 -
编写函数,模拟实现strcpy
编写函数,模拟实现strcpy程序代码如下:#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;assert.h&amp;gt;char *MyStrcpy(char *dest, const char *src){ char *ret = dest; assert(dest != NULL); assert(src != N...原创 2018-05-05 22:39:35 · 2441 阅读 · 0 评论 -
编写函数,模拟实现strcat
编写函数,模拟实现strcat程序代码如下:#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;assert.h&amp;gt;char *MyStrcat(char *dest, const char *src){ char *ret = dest; assert(dest != NULL); assert(src !=...原创 2018-05-05 22:55:02 · 1733 阅读 · 1 评论 -
模拟实现strncat
模拟实现strncat程序代码如下:#define _CRT_SECURE_NO_WARNINGS#include &lt;stdio.h&gt;#include &lt;assert.h&gt;#include &lt;string.h&gt;char* MyStrncat(char* dest, char* src, size_t len){ assert(NULL...原创 2018-11-27 12:10:01 · 461 阅读 · 2 评论 -
模拟实现strncpy
模拟实现strncpystrncpy就是将src中的n个字符拷贝到dest中,比较简单,但要注意几个点:如果src长度小于len该怎么处理?通常是用‘\0’ 补齐len的长度,注意strlen判断src长度时,要明白strlen是向后找‘\0’来计算长度,所以,如果是用单个字符赋值,不要忘记在结尾加上‘\0’,在给src设置长度时也不要忘记算上‘\0’的长度有时候还要考虑到内存重叠...原创 2018-11-27 11:45:17 · 384 阅读 · 0 评论 -
贪吃蛇游戏
贪吃蛇游戏程序代码如下:Snake.h#ifndef _SNAKE_H__#define _SNAKE_H__#include &lt;stdio.h&gt;#include &lt;Windows.h&gt;#include &lt;stdlib.h&gt;#include &lt;time.h&gt;enum Direction{ UP=1,原创 2018-11-24 11:39:35 · 293 阅读 · 0 评论 -
模仿qsort的功能实现一个通用的冒泡排序
模仿qsort的功能实现一个通用的冒泡排序程序代码如下:#include <stdio.h>#include <string.h>#include <assert.h>int cmp1(const void *a, const void *b){ assert(a); assert(b); return...原创 2018-05-22 22:13:45 · 333 阅读 · 0 评论 -
练习使用qsort函数排序各种类型的数据
练习使用qsort函数排序各种类型的数据程序代码如下:#include <stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>int cmp1(const void *a, const void *b){ assert(a); ...原创 2018-05-22 22:09:47 · 442 阅读 · 0 评论 -
写冒泡排序可以排序多个字符串
写冒泡排序可以排序多个字符串程序代码如下:#include <stdio.h>#include <string.h>void BubbleSortStr(const char *str[], int sz){ int i = 0; int j = 0; for (i = 0; i < sz-1; i++) ...原创 2018-05-21 19:16:23 · 521 阅读 · 0 评论 -
使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。 例如:命令行参数输入:test.exe -a 1 2 执行1+2输出3 程序代码如下:#include &lt;stdio.h&gt;int main(int ar...原创 2018-05-21 19:10:39 · 139 阅读 · 0 评论 -
编写函数,模拟实现memmove
编写函数,模拟实现memmove程序代码如下:#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;assert.h&amp;gt;void *MemMove(void *dest, const void *src, size_t count){ assert(dest); assert(src); void *ret = d...原创 2018-05-07 22:16:46 · 226 阅读 · 0 评论 -
编写函数,模拟实现memcpy
编写函数,模拟实现memcpy程序代码如下:#include <stdio.h>#include <assert.h>void *MyMemcpy(void *dest, const void *src, size_t count){ assert(dest); assert(src); void *ret = d...原创 2018-05-07 22:13:57 · 213 阅读 · 0 评论 -
编写函数,模拟实现strchr
编写函数,模拟实现strchr程序代码如下:#include <stdio.h>#include <assert.h>//找出某个字符在字符串中第一次出现的地址char *MyStrchr(const char *dest, const char c){ assert(dest); while (*dest) ...原创 2018-05-07 22:08:30 · 593 阅读 · 0 评论 -
编写函数,模拟实现strstr
编写函数,模拟实现strstr程序代码如下:#include <stdio.h>#include <assert.h>char *MyStrstr(const char *string, const char *substr){ assert(string != NULL); assert(substr != NULL);...原创 2018-05-05 23:04:33 · 742 阅读 · 0 评论 -
编写函数,模拟实现strcmp
编写函数,模拟实现strcmp程序代码如下:#include &amp;amp;lt;stdio.h&amp;amp;gt;#include &amp;amp;lt;assert.h&amp;amp;gt;int MyStrcmp(const char *src, const char *dest){ assert(src != NULL); assert(dest != NULL);原创 2018-05-05 23:01:10 · 1822 阅读 · 0 评论 -
使用宏实现两个数中求较大值
使用宏实现两个数中求较大值程序代码如下:#include <stdio.h>#define MAX(X,Y) ((X)>(Y)?(X):(Y))int main(){ int a = 0; int b = 0; printf("请输入两个整数:\n"); scanf("%d%d", &a, &b)...原创 2018-04-16 23:06:03 · 806 阅读 · 0 评论 -
写一个宏可以将一个数字的奇数位和偶数位交换
写一个宏可以将一个数字的奇数位和偶数位交换程序代码如下:#include <stdio.h>#define CHANGE(X) ((X & 0x55555555) << 1) | ((X & 0xAAAAAAAA) >> 1) int main(){ int x = 0; printf("请输入...原创 2018-04-16 23:03:02 · 222 阅读 · 0 评论 -
编写函数,获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。程序代码如下:#include <stdio.h>void old_even_bits(int num){ int i = 0; printf("奇数位:"); for (i=31; i>=1; i-=2) { printf("%d",...原创 2018-03-28 17:02:25 · 493 阅读 · 0 评论 -
教你如何设计一个简单的猜数字游戏
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <string.h>#include <stdlib.h>#include <time.h>void menu(){ printf("*************************\n"); printf("...原创 2018-03-21 23:30:30 · 4373 阅读 · 0 评论 -
创建一个数组: 实现函数init()初始化数组、 实现reverse()函数完成数组元素的逆置、 实现empty()清空数组
创建一个数组:实现函数init()初始化数组、实现reverse()函数完成数组元素的逆置、实现empty()清空数组。程序代码如下:#include <stdio.h>#include <string.h>void Init(int arr[],int sz){ int i = 0; for (i = 0; ...原创 2018-03-29 23:24:18 · 306 阅读 · 0 评论 -
如何用代码计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值?
#include <stdio.h>int main (){ int n = 0; double sum = 0.0; int flag = 1; for (n = 1;n <= 100;n++) { sum +=flag *(1.0/n); flag = -flag; } printf ("%lf\n",sum); return 0;}程序运行结果如下:...原创 2018-03-20 09:09:42 · 2288 阅读 · 0 评论 -
教你如何用代码将数组A中的内容和数组B中的内容进行交换。(数组一样大)
#include <stdio.h>int main (){ int arr1[] = {1,3,5,7,9}; int arr2[] = {2,4,6,8,0}; int i = 0; int tmp = 0; int sz = sizeof(arr1)/sizeof(arr1[0]); for (i = 0;i < sz;i++) { tmp = arr1[i]; arr...原创 2018-03-19 22:55:54 · 228 阅读 · 0 评论 -
如何用代码求两个数的最大公约数?
#include <stdio.h>int main (){ int a = 18; int b = 24; int tmp = 0; while (tmp = a%b) { a = b; b = tmp; } printf ("%d\n",b); return 0;}程序运行结果如下:原创 2018-03-18 21:44:54 · 790 阅读 · 0 评论 -
教你如何用代码将三个数按从大到小输出
#include <stdio.h>void Swap (int* px,int* py){ int tmp = 0; tmp = *px; *px = *py; *py = tmp;}int main (){ int a = 1; int b = 2; int c = 3; if (a < b) { Swap (&a,&b); } if (a < c) ...原创 2018-03-18 21:26:20 · 1345 阅读 · 0 评论 -
如何用代码求10 个整数中最大值?
#include <stdio.h>int main (){ int arr[]={0,-7,2,3,4,5,6,7,8,9}; int max = arr[0]; int i = 0; for (i=1;i<sizeof(arr)/sizeof(arr[0]);i++) { if (arr[i]>max) { max = arr[i]; } } printf (...原创 2018-03-18 21:08:33 · 1623 阅读 · 0 评论 -
如何在不创建临时变量的情况下,交换两个数的内容
1.#include <stdio.h>int main (){ int a = 10; int b = 20; printf ("a = %d,b = %d\n",a,b); a = a + b; b = a - b; a = a - b; printf ("a = %d,b = %d\n",a,b); return 0;}2.#include <stdio.h>int ...原创 2018-03-18 20:53:58 · 260 阅读 · 0 评论 -
给定两个整形变量的值,将两个值的内容进行交换
#include <stdio.h>int main (){ int a = 10; int b = 20; int tmp = 0; printf ("a = %d,b = %d\n",a,b); tmp = a; a = b; b = tmp; printf ("a = %d,b = %d\n",a,b); return 0;}程序运行结果如下:原创 2018-03-18 20:29:37 · 186 阅读 · 0 评论