自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 写冒泡排序可以排序多个字符串

#include<stdio.h>#include<string.h>void bubble_sort(char* str[], int sz){ int i = 0; int j = 0; for (i = 0; i < sz; i++) { for (j = 0; j < sz - 1 - i; j++)...

2018-04-30 18:08:18 212

原创 使用main函数的参数,实现一个整数计算器

使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。 例如:命令行参数输入:test.exe -a 1 2 执行1+2输出3 ...

2018-04-30 18:07:38 167

原创 实现memmove

#include<stdio.h>void* mymemmove(void* dst, const void* src, size_t count){ void* ret = dst; if (dst <= src || (char*)dst >= ((char*)src + count)) { while (count--) ...

2018-04-26 18:02:14 81

原创 实现memcpy

#include<stdio.h>void* mymemcpy(void* str, const void* dst, size_t count){ void* ret = str; while (count--) { *(char*)str = *(char*)dst; str = (char*)str + 1; ...

2018-04-26 18:01:45 170

原创 实现strcmp

#include<stdio.h>int mystrcmp(const char* str, const char* dst){ int ret = 0; while (!(ret = *(unsigned char*)str - *(unsigned char*)dst) && *dst) { ++str, ...

2018-04-26 18:01:08 83

原创 实现strchr

#include<stdio.h>char* mystrchr(const char* str, char c){ if (*str == NULL) { return NULL; } char* s1 = (char*)str; while (*s1) { if (*s1 == c) ...

2018-04-26 18:00:36 468

原创 实现strstr

#include<stdio.h>char* mystrstr(const char* str, const char* dst){ if ((str == NULL) && (dst == NULL)) { return NULL; } char* s1 = (char*)str; char* s2 = (c...

2018-04-26 17:59:13 95

原创 模拟实现strcat

#include<stdio.h>char* mystrcat(char* str, const char* dst){ char* ret = str; if (str == NULL || dst == NULL) { return NULL; } while (*str != '\0') { st...

2018-04-26 13:11:17 98

原创 模拟实现strcpy

#include<stdio.h>#include<assert.h>char* mystrcpy(const char* str, char* dst){ char* ret = dst; assert(str != NULL, dest != NULL); while (*dst++ = *str++); return ret;}...

2018-04-26 13:10:42 87

原创 .喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水

一瓶汽水一元,有多钱就能喝多少瓶,然后用瓶子换汽水,所以瓶子的总数除以2再加上用钱买的,就是能喝多少瓶汽水。#include<stdio.h>int main(){ int a = 20; int sum1 = 0; int sum2 = 0; sum2 = sum2 + a; while (a) { sum1...

2018-04-26 13:09:53 269

原创 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次

本题的核心思想就是一个数异或相同的两个数时会等于他本身,所以当0异或这个数组的数字时,最终得到的数字就是需要找到的两个数字异或的结果,然后找到它二进制为1的一位,将原来的数组分为两组,再异或就能得到结果。#include<stdio.h>void find(int* arr, int sz){ int i = 0; int a = 0; int b ...

2018-04-26 13:07:25 131

原创 递归方式实现打印一个整数的每一位

#include<stdio.h>void print(int n){ if (n < 10) { printf("%d ", n); } else { print(n / 10); printf("%d ", n % 10); }}int main(){ int n...

2018-04-23 17:26:53 826

原创 递归和非递归分别实现求n的阶乘

非递归:#include<stdio.h>int factorial(int n){ int i = 0; int ret = 1; for (i = 1; i <= n; i++) { ret = ret * i; } return ret;}int main(){ int n = 0;...

2018-04-23 17:26:21 764

原创 递归和非递归分别实现strlen

非递归代码:#include<stdio.h>int mystrlen(char* string){ int count = 0; while (*string != '\0') { count++; string++; } return count;}int main(){ char s...

2018-04-23 17:25:32 378

原创 编写一个函数reverse_string(char * string)(递归实现)

实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中 的字符串操作函数。 代码如下:#include<stdio.h>void reverse_string(char* string){ if (*string == '\0') { return; } reverse_string(string + 1);...

2018-04-23 17:24:30 242

原创 写一个递归函数DigitSum(n)

输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19 。 实现代码如下:#include<stdio.h>int DigitSum(int n){ if (n > 9) { return DigitSum(n / 10) + n % 10; } else...

2018-04-23 17:23:43 470

原创 编写一个函数实现n^k,使用递归实现

#include<stdio.h>int pow(int n, int k){ if (k > 0) { return n * pow(n, k - 1); } else { return 1; }}int main(){ int n = 0; int k = 0; scan...

2018-04-23 17:22:52 163

原创 递归和非递归分别实现求第n个斐波那契数

非递归代码如下:#include<stdio.h>int main(){ int a = 1; int b = 1; int c = 1; int n = 0; scanf("%d", &n); while (n - 2) { c = a + b; a = b; ...

2018-04-23 17:22:12 137

原创 模拟实现printf函数

看到这个题目的时候就想到这应该是一个可变函数,但是他的输出类型不同,所以需要判断什么时候需要输出什么类型,具体实现代码如下:这里#include<stdio.h>#include<stdarg.h>void print(char* format, ...){ va_list arg; va_start(arg, format); whi...

2018-04-17 18:00:34 99

原创 使用可变参数,实现函数,求函数参数的最大值。

#include<stdio.h>#include<stdarg.h>int MAX(int n, ...){ va_list arg; int i = 0; va_start(arg, n); int max = va_arg(arg, int); for (i = 0; i < n - 1; i++) { ...

2018-04-17 17:55:35 408

原创 使用可变参数,实现函数,求函数参数的平均值。

#include<stdio.h>#include<stdarg.h>double average(int n, ...){ va_list arg; int i = 0; double sum = 0; va_start(arg, n); for(i = 0; i < n; i++) { sum ...

2018-04-17 17:55:01 366

原创 可变函数列表源码剖析

这是一段可变参数的简单函数:#include<stdio.h>#include<stdarg.h>double average(int n, ...){ va_list arg; int i = 0; double sum = 0; va_start(arg, n); for(i = 0; i < n; i++)...

2018-04-17 17:54:08 91

原创 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。

#include<stdio.h>void reverse(char* x, char* y)//逆置函数,会逆置给定空间里的字符{ while (x < y) { *x = *x ^ *y; *y = *x ^ *y; *x = *x ^ *y; x++; y--; }...

2018-04-16 00:54:12 95

原创 一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。 请找出这个数字。(使用位运算)

这道题的核心思想就是一个数异或另外一个数两次,结果不变。#include<stdio.h>void check(int* arr, int sz){ int i = 0; int a = 0; for (i = 0; i < sz; i++) { a = a^arr[i]; } printf("不成对出现...

2018-04-16 00:52:24 112

原创 不使用(a+b)/2这种方式,求两个数的平均值

#include<stdio.h>int Average(int x, int y){ int ret = 0; if (x >= y) { ret = x - ((x - y) / 2); } else { ret = y - ((y - x) / 2); } return ret;}...

2018-04-16 00:50:35 69

原创 .编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回 值value的二进制位模式从左到右翻转后的值

#include<stdio.h>unsigned int reverse_bit(unsigned int value){ unsigned int ret = 0; int i = 0; int tmp = 1; for (i = 0; i < 32; i++) { if (((value >> i) &...

2018-04-16 00:49:54 111

原创 扫雷

#ifndef __game_h_#define __game_h_#define ROW 10#define COL 10#define ROWS 12#define COLS 12void set_mine(char mine[ROWS][COLS], int row, int col);void display(char board[ROWS][COLS], int row,...

2018-04-14 13:13:10 244

原创 杨氏矩阵

有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N); 数组: 1 2 3 2 3 4 3 4 5 这道题的思路就是以第一行最后一个数为标准,如果输入的数字比它大,则一定在第一行下面,如果输入数字比它小,则一定在最后一列前面,具体实现代码如下:#include<stdio.h&g...

2018-04-10 16:27:58 63

原创 调整数组使奇数全部都位于偶数前面

题目: 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。 这道题的思路就是先判断数组从下标为0的数字判断是否为奇数,如果是奇数,该数字位置不变,继续看下一个数字,如果为偶数,从数组最后一个数字看是判断,如果为偶数,判断前一个,直到奇数的时候和前面的偶数互换,但是后者的下标要一直大于前者,具体实现代码如下:#...

2018-04-10 15:38:53 103

原创 三子棋程序的实现

```#pragma once#ifndef _SANZIQI_H_#define _SANZIQI_H_#define ROW 3#define COL 3void InitBoard(char arr[ROW][COL], int row, int col);//初始化void Display(char arr[ROW][COL], int row, int col);//...

2018-04-09 00:24:17 574

原创 在屏幕上打印杨辉三角。

#include<stdio.h>#define n 10int main(){ int arr[n][n] = {0}; int i = 0; int j = 0; for (i = 0; i < n; i++) { arr[i][0] = 1; arr[i][i] = 1; for (j = 1; j < i; j++) { arr[i][j] = arr[...

2018-04-03 16:31:22 73

原创 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯 的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说

#include<stdio.h>int main(){ int a = 0; int b = 0; int c = 0; int d = 0; for (a = 0; a < 2; a++) { for (b = 0; b < 2; b++) { for (c = 0; c < 2; c++) { for (d = 0; d < 2; d++...

2018-04-03 16:30:48 271

原创 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三; E选手说:我第四,A

#include<stdio.h>int main(){ int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; for (a = 1; a <= 5; a++) { for (b = 1; b <= 5; b++) { for (c = 1; c <= 5; c++) { for (d = 1;...

2018-04-03 16:30:11 68

原创 数组的基本介绍

在我们的学习中一般只有一维数组和二维数组的使用,所以我们这里仅仅介绍一维数组和二维数组。         一 . 一维数组的创建和初始化:数组的意思是一组相同类型的集合;         typt_t   arr_name   [const_n];         //typt_t   是指数组的元素类型         //const_n   是一个常量表达式,用来指定数组的大小        ...

2018-04-03 16:28:42 161

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除