c语言
nian_ignite
这个作者很懒,什么都没留下…
展开
-
编写一个函数实现n^k,使用递归实现
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int power(int n, int k) { if (k <= 0) { return 1; } else { return n * power(n, k - 1); }}int main() { ...原创 2019-03-29 14:26:29 · 152 阅读 · 0 评论 -
模拟实现strcat
#include <stdio.h>#include <stdlib.h>char *Strcat(char *dest, const char *src) { int i = 0; for (; dest[i] != '\0'; ++i); for (int j = 0; src[j] != '\0'; ++i, ++j) { dest[i] = src...原创 2019-04-11 13:33:14 · 93 阅读 · 0 评论 -
杨氏矩阵
#include <stdio.h>#include <stdlib.h>int find_data(int arr[][5], int line, int value) { if ((value < arr[0][0]) || (value > arr[line - 1][4])) { return 0; } int lin = 0; in...原创 2019-04-07 22:07:53 · 220 阅读 · 0 评论 -
实现一个函数,可以左旋字符串中的k个字符。
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void move(char *arr, int count) { int i = 0; char tmp = arr[0]; for (i; i < count - 1; ++i) { arr[i] = arr...原创 2019-04-07 23:05:44 · 110 阅读 · 0 评论 -
判断一个字符串是否为另外一个字符串旋转之后的字符串。
例如:给定s1 =AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0.#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>void leftMove(char *left, char ...原创 2019-04-08 13:12:13 · 185 阅读 · 0 评论 -
简易扫雷游戏的实现
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int Menu() { //打印菜单 printf("======================================\n"); printf("============ 1. 开...原创 2019-04-02 22:54:59 · 172 阅读 · 0 评论 -
实现一个简易的通讯录
通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址.#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct PersonInfo { char name[102...原创 2019-04-16 15:06:14 · 278 阅读 · 0 评论 -
C语言思维导图
整理不易,如有不足,还请见谅原创 2019-04-21 16:13:30 · 226 阅读 · 0 评论 -
模拟实现strstr
#include <stdio.h>#include <stdlib.h>char *mystrstr(char *str1, char *str2) { int n; if (*str2) { while (*str1) { for (n = 0; *(str1 + n) == *(str2 + n); ++n) { if (!*(str2 ...原创 2019-04-13 23:04:04 · 112 阅读 · 0 评论 -
模拟实现strchr
#include <stdio.h>#include <stdlib.h>char *mystrchr(char *s, char c) { while (*s != '\0' && *s != c) { ++s; } return *s == c ? s : NULL;}int main() { char str[] = "hel...原创 2019-04-13 23:23:28 · 109 阅读 · 0 评论 -
模拟实现strcmp
#include <stdio.h>#include <stdlib.h>#include <assert.h>int mystrcmp(const char *src, const char *dst) { int ret = 0; assert(src != NULL); assert(dst != NULL); while (!(ret ...原创 2019-04-13 23:45:38 · 136 阅读 · 0 评论 -
模拟实现memcpy
#include <stdio.h>#include <stdlib.h>void *mymemcpy(void *str, const void *dst, size_t count) { void *ret = str; while (--count) { *(char*)str = *(char*)dst; str = (char*)str + 1...原创 2019-04-14 20:54:50 · 228 阅读 · 0 评论 -
模拟实现memmove
#include <stdio.h>#include <stdlib.h>#include <assert.h>void* mymemmove(void* dest, const void* src, size_t n){ char * d = (char*)dest; const char * s = (const char*)src; i...原创 2019-04-14 21:53:11 · 111 阅读 · 0 评论 -
自定义类型:结构体,枚举,联合
结构体结构变量结构的成员可能具有不同的类型.而且,每个结构成员都有名字,所以为了选择特定的结构成员需要指明结构成员的名字而不是他的位置.结构变量的初始化和数组一样,结构变量也可以在声明的同时进行初始化.为了对结构进行初始化,要把待储存到结构中的值的列表准备好并用花括号括起来.初始化式中的值必须按照结构成员的顺序进行显示,结构初始化式遵循的原则类似于数组初始化式的原则.用于结...原创 2019-04-14 23:53:57 · 140 阅读 · 0 评论 -
模拟实现strcpy
#include <stdio.h>#include <stdlib.h>char *Strcpy(char *dest, const char *str) { char *ret = dest; while (*dest++ = *str++) { ; } return ret;}int main() { char arr1[64] = { 0...原创 2019-04-11 13:21:00 · 100 阅读 · 0 评论 -
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水, 给20元,可以喝多少汽水。
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int main() { int i; int empty; int num = 0; printf("请输入钱数:"); scanf("%d", &i); empty = i; while (empty ...原创 2019-04-11 12:55:30 · 130 阅读 · 0 评论 -
调整数组使奇数全部都位于偶数前面
#include <stdio.h>#include <stdlib.h>void Sequence(int arr[], int len) { int i, j; for (i = 0; i < len; ++i) { if (arr[i] % 2 == 0) { for (j = i + 1; j < len; ++j) { i...原创 2019-04-07 20:39:55 · 114 阅读 · 0 评论 -
写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int DigitSum(int n) { int i = 0; int sum = 0; if (n != 0) { i = n % 10; n = n / 10; sum = i + DigitSum(n)...原创 2019-03-29 14:31:39 · 97 阅读 · 0 评论 -
编写一个函数 reverse_string(char * string)(递归实现)
#include <stdio.h>#include <stdlib.h>void reverse_string(char * string) { if (*string != '\0') { string++; reverse_string(string); printf("%c", *(string - 1)); }}int main...原创 2019-03-29 14:34:05 · 150 阅读 · 0 评论 -
递归和非递归分别实现strlen
#include <stdio.h>#include <stdlib.h>int strlen1(char * string) { //非递归 int count = 0; while (*string != '\0') { ++count; ++string; } return count;}int strlen2(char * strin...原创 2019-03-29 14:36:22 · 113 阅读 · 0 评论 -
递归和非递归分别实现求n的阶乘
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int factorial(int n) { //非递归 int sum=1; for (n; n>0; --n) { sum *= n; } return sum;}int factorial2(i...原创 2019-03-29 14:37:41 · 221 阅读 · 0 评论 -
递归方式实现打印一个整数的每一位
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>void Print(int n) { if (n > 9) { Print(n / 10); } printf("%d ", n % 10);}int main() { int n; printf("...原创 2019-03-29 14:38:51 · 137 阅读 · 0 评论 -
5位运动员参加了10米台跳水比赛,预测比赛结果
A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。#include <stdio.h>#include <stdlib.h>int Repeat(int arr[]) { int i = 0; int j = 0;...原创 2019-04-04 23:33:29 · 176 阅读 · 0 评论 -
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个 嫌疑犯的一个。
A说:不是我。B说:是C。C说:是D。D说:C在胡说已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手。#include <stdio.h>#include <stdlib.h>int main() { int criminal; for (criminal = 'A'; criminal <= 'D'; ...原创 2019-04-04 23:34:50 · 136 阅读 · 0 评论 -
杨辉三角
#include <stdio.h>#include <stdlib.h>#define N 8int main() { int arr[N][N] = { 0 }; int i = 0; for (i; i <= N; ++i) { int k = 0; for (k; k <= N - i; ++k) { printf(" "...原创 2019-04-04 23:37:02 · 99 阅读 · 0 评论 -
三子棋小游戏的实现
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>void print(int chess[][3]) //打印棋盘{ int i = 0; int j = 0; syste...原创 2019-03-31 21:57:22 · 139 阅读 · 0 评论 -
编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>unsigned int reverse_bit(unsigned int value) { int i = 0; int bit = 0; unsigned int result = 0; for (i; i <...原创 2019-04-06 22:32:41 · 138 阅读 · 0 评论 -
不使用(a+b)/2这种方式,求两个数的平均值。
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int main() { int a; int b; printf("请输入a b的值: "); scanf("%d%d", &a, &b); printf("%d\n", (a - ((a - b) ...原创 2019-04-06 22:51:01 · 101 阅读 · 0 评论 -
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。 请找出这个数字。
#include <stdio.h>#include <stdlib.h>int main() { int arr[] = { 1,2,3,5,4,4,3,2,1 }; int len = sizeof(arr) / sizeof(arr[0]); for (int i = 1; i < len; ++i) { arr[0] = arr[0] ^ a...原创 2019-04-06 23:21:45 · 135 阅读 · 0 评论 -
一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次,找出这两个数字
#include <stdio.h>#include <stdlib.h>void find_num(int arr[], int len) { int i = 0; int ret = 0; int pos = 0; int x = 0; int y = 0; for (i = 0; i < len; ++i) { ret ^= arr[i]...原创 2019-04-11 00:23:00 · 123 阅读 · 0 评论 -
有一个字符数组的内容为:"student a am i", 请你将数组的内容改为"i am a student".
#include <stdio.h>#include <stdlib.h>void reverse(char *left, char *right) { while (left < right) { char tmp = *left; *left = *right; *right = tmp; left++; right--; }}...原创 2019-04-07 19:50:25 · 158 阅读 · 0 评论 -
文件操作
打开文件FILE *fopen(const char * restrict filename, const char * restrict mode);fopen函数的第一个参数是含有要打开文件名的字符串.("文件名"可能包含关于文件位置的信息,如驱动器和路径) 第二个参数是"模式字符串",它用来指定打算对文件执行的操作.例如,字符串"r"表明将从文件读入数据,但是不会向文件写入数据...原创 2019-05-02 01:06:28 · 118 阅读 · 0 评论