![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
吃花椒的汪汪酱
这个作者很懒,什么都没留下…
展开
-
从左到右计算的计算器
计算器原创 2022-09-03 16:10:12 · 186 阅读 · 1 评论 -
猜数字游戏(升级版)
printf("选择错误\n");printf("选择错误\n");printf("请猜数字\n");printf("请选择难度\n");printf("请选择\n");原创 2022-07-25 18:00:58 · 762 阅读 · 0 评论 -
魔方阵的奇数阶和4n阶
int main(){ int j = 0; int k = 0; int arr[30][30] = { 0 }; int n = 0; scanf("%d", &n); int row = 0; int col = 0; int i = 0; if (n % 2 == 1)//奇数情况 { col = n / 2; arr[0][col] = 1; for (i = ...原创 2022-05-12 22:34:37 · 120 阅读 · 0 评论 -
计算cos值
本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e:cos(x)=x0/0!−x2/2!+x4/4!−x6/6!+⋯裁判测试程序样例:#include <stdio.h>#include <math.h>double funcos( double e, double x );int main(){ double e, x; scanf("%lf %lf", &e, &x);..原创 2022-01-24 19:25:25 · 1042 阅读 · 0 评论 -
求一个数中某个数字出现的次数
int CountDigit(int n, int num){ if (num > 9 || num < 1) { printf("num输入错误\n"); } else { int count = 0; while (n) { if (n % 10 == num) { count++; ...原创 2021-11-25 19:58:29 · 226 阅读 · 0 评论 -
函数输出n行数字金字塔。
#include<stdio.h>#include<string.h>#include<assert.h>void pyramid(int n){ if (n > 9) { printf("输入错误\n"); } int i = 0; for (i = 0; i < n; i++) { int j = 0; int count = 0;...原创 2021-11-18 22:03:39 · 1484 阅读 · 0 评论 -
memmove函数的实现
void* my_memmove(void* dest, const void* src, size_t num){ void* ret = dest; assert(dest != NULL); assert(src != NULL); if (dest < src) { while (num--) { *(char*)dest = *(char*)src; ++(char*)d...原创 2021-11-16 19:47:14 · 4066 阅读 · 0 评论 -
memcpy函数的实现
#include<stdio.h>#include<string.h>#include<assert.h>struct s{ char name[20]; int age;};void* my_memcpy(void* dest, const void* src, size_t num){ assert(dest != NULL); assert(src != NULL); while (num--) {...原创 2021-11-14 11:44:10 · 787 阅读 · 0 评论 -
strstr函数的实现
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<string.h>#include<assert.h>char* my_strstr(const char* p1, const char* p2){ assert((p1!=NULL) && (p2!=NULL)); char* s1 = p1;//不改变p1和p2; char* s2 = p2; ...原创 2021-11-12 18:34:39 · 73 阅读 · 0 评论 -
strcmp函数的实现
#include<stdio.h>#include<string.h>#include<assert.h>int my_strcmp(const char* p1, const char* p2){ assert(p1 && p2); while (*p1 == *p2) { if (*p1 == '\0') { return 0; } ...原创 2021-10-30 11:05:18 · 80 阅读 · 0 评论 -
strcat函数的实现
#include<stdio.h>#include<string.h>#include<assert.h>char* my_strcat(char* dest, const char* src){ assert(dest!=NULL); assert(src != NULL); char* ret = dest; while (*dest != '\0') { dest++; } while ...原创 2021-10-29 19:45:07 · 95 阅读 · 0 评论 -
strcpy 函数的实现
#include<stdio.h>#include<string.h>#include<assert.h>void my_strcpy(char* dest, const char* src){ assert(dest!=NULL); assert(src != NULL); while (*dest++ = *src++) { ; }}int main(){ char arr1[] = "ab...原创 2021-10-24 21:38:39 · 79 阅读 · 0 评论 -
通过指针在杨氏矩阵查找某个数
int search(int arr[3][3], int k,int* px,int* py ){ int x = 0; int y = *py - 1; while (y >= 0 && x <*px-1 ) { if (arr[x][y] > k) { y--; } else if (arr[x][y] < k) { ...原创 2021-10-24 20:27:05 · 2080 阅读 · 0 评论 -
在杨氏矩阵中查找某个数字
int search(int arr[3][3], int k,int row,int col){ int x = 0; int y = col - 1; while (y >= 0 && x <= 2) { if (arr[x][y] > k) { y--; } else if (arr[x][y] < k) { ...原创 2021-10-24 19:55:31 · 65 阅读 · 0 评论 -
通过库函数判断一个字符串是否由另一个字符串左旋而来
#include<stdio.h>#include<string.h>#include<assert.h>int is_leftmove(char* str1, char* str2){ int len = strlen(str1); strncat(str1, str1, len);//追加字符串 char* ret=strstr(str1, str2);//查找子串 if (ret == NULL) { ...原创 2021-10-22 19:28:07 · 53 阅读 · 0 评论 -
判断一个字符串是否由另一个字符串左旋而来(一步一步试验)
#include<stdio.h>#include<string.h>#include<assert.h>void reverse(char* left, char* right){ assert(left != NULL); assert(right != NULL); while (left < right) { char tmp = *left; *left = *right; ...原创 2021-10-21 11:06:07 · 63 阅读 · 0 评论 -
三步翻转法实现字符串左旋
#include<stdio.h>#include<string.h>#include<assert.h>void reverse(char* left, char* right){ assert(left != NULL); assert(right != NULL); while (left < right) { char tmp = *left; *left = *right; ...原创 2021-10-21 10:52:37 · 58 阅读 · 0 评论 -
将一个字符串左旋n个字符
#include<stdio.h>#include<string.h>void reverse(char* arr,int n){ int len = strlen(arr) ; int j = 0; for(j=0;j<n;j++) { int k = 0; char tmp = arr[0]; for (k = 0; k < len - 1; k++) {...原创 2021-10-21 10:37:51 · 80 阅读 · 0 评论 -
智力题:判断名次
原创 2021-10-11 08:47:54 · 86 阅读 · 0 评论 -
打印杨辉三角
int main(){ int n = 0; printf("请输入要输出的行数:\n"); scanf("%d", &n); int arr[10][10] = { 0 }; int i = 0; for (i = 0; i < n; i++) { int j = 0; for (j = 0; j <= i; j++) { if (j...原创 2021-10-10 22:05:18 · 45 阅读 · 0 评论 -
使一个数组奇数位于偶数左边(简化版)
void reverse(int* arr,int sz){ int right = sz - 1; int left = 0; while (left < right) { while (left < right && arr[left] % 2 == 1) { left++; } while (left < right && arr[...原创 2021-10-09 20:53:28 · 110 阅读 · 0 评论 -
使一个数组的奇数位于偶数左边1
void reverse(int* arr,int sz){ int right = sz - 1; int left = 0; while (left < right) { if (arr[left] % 2 ==0) { if( (arr[right] % 2)==1) { int tmp = arr[left]; arr...原创 2021-10-09 20:50:44 · 81 阅读 · 0 评论 -
空瓶换酒问题(循环)
#include<stdio.h>int main(){ int n = 0; scanf("%d", &n); int total = 0; int exh = 0; int empty = n; while (empty >= 2) { exh = exh+empty/ 2; empty = empty / 2 + empty % 2; } total = exh + n...原创 2021-10-06 23:35:06 · 173 阅读 · 0 评论 -
空瓶换酒问题(递归)
#include<stdio.h>int Cac(int n){ if (n < 2) { return 0; } if (n >= 2) { return n/2+Cac(n/2+n%2); }}int main(){ int n = 0; scanf("%d", &n); int ret=Cac(n)+n; printf("%d", ret);...原创 2021-10-06 23:25:07 · 150 阅读 · 0 评论 -
打印任意大小的菱形
#include<stdio.h>#include<math.h>int main(){ int line = 0; scanf("%d", &line); int i = 0; int j = 0; for (j = 0; j <= line ; j++) { int m = 0; for (m = 0; m <= line - 1 - ...原创 2021-10-06 22:38:41 · 2053 阅读 · 0 评论 -
输出水仙花数
#include<stdio.h>#include<math.h>int main(){ int i = 0; for (i = 0; i <= 100000; i++) { int sum = 0; int n = 1; int tmp = i; while (tmp /= 10) { n++; } tmp = ...原创 2021-10-05 23:38:48 · 51 阅读 · 0 评论 -
输入一个符号输出他的ascll码值并输出他的前一个元素
int main(){ char ch,ch2; scanf("%c",& ch); ch2 = 'ch' - 1; printf("%d ", ch); printf("%c",ch2); return 0;}原创 2021-10-02 10:32:20 · 386 阅读 · 0 评论 -
通过函数指针数组实现计算器
void menu(){ printf("******************************\n"); printf("************请选择************\n"); printf("0.exit 1.Add 2.Sub 3.Mul 4.Div"); printf("******************************\n");}int Add(int x, int y){ return x + y;}int Sub(i...原创 2021-09-17 08:16:58 · 1105 阅读 · 0 评论 -
通过指针打印数组
#include<stdio.h>void print(int(*p)[5], int x, int y){ int i = 0; for (i = 0; i < x; i++) { int j = 0; for (j = 0; j < y; j++) { printf("%d ", *(*(p + i) + j)); //printf("%d ", (*(p ...原创 2021-09-12 15:25:12 · 119 阅读 · 0 评论 -
求计算机的字节序模式
#include<stdio.h>int check_sys(){ int a = 1; return *(char*)&a;}int main(){ int ret = check_sys(); if (ret == 1) { printf("小端\n"); } else { printf("大端\n"); } return 0;}...原创 2021-09-08 20:14:37 · 55 阅读 · 0 评论 -
通过递归求n的k次方
#include<stdio.h>double Pow(int n, int k){ if (k == 0) return 1; else if (k < 0) return (1 / (Pow(n, -k))); else return n * Pow(n, k - 1);}int main(){ int n = 0; int k = 0; scanf("%d%d", &n,...原创 2021-09-04 10:47:38 · 141 阅读 · 0 评论 -
通过递归将一个数的每一位相加
#include<stdio.h>int DigitSum(unsigned int n){ if (n > 9) { return DigitSum(n / 10)+n%10; } else return n;}int main(){ unsigned int n = 0; scanf("%d", &n); int a=DigitSum(n); printf("%d", a);...原创 2021-09-03 17:50:57 · 84 阅读 · 0 评论 -
对一个数组进行逆序
#include<stdio.h>int my_strlen(char* str){ int count = 0; while (*str != '\0') { count++; str++; } return count;}void reverse_string(char* arr){ char tmp = arr[0]; int len = my_strlen(arr); arr[0] ...原创 2021-09-03 17:30:32 · 101 阅读 · 0 评论 -
输入n,打印n乘法表
#include<stdio.h>void print(int n){ int i = 0; for (i = 1; i <= n; i++) { int j = 0; for (j = 1; j <= i; j++) { printf("%d*%d=%-3d", i, j, i * j); } printf("\n"); }}int mai...原创 2021-09-03 08:54:10 · 604 阅读 · 0 评论 -
打印一个数字的二进制的奇数位和偶数位
int main(){ int a = 0; scanf("%d", &a); int i = 0; printf("偶数位是:\n"); for (i = 30; i >= 0; i -= 2) { printf("%d ", (a >> i) &1); } printf("\n"); printf("奇数位是:\n"); for (i = 31; i >= 1; i ...原创 2021-09-02 18:35:04 · 84 阅读 · 0 评论 -
精简算法求一个数字二进制中1的个数
int count_bit_one(int n){ int count = 0; int i = 0; while (n) { n = n & (n - 1); count++; } return count;}int main(){ int n = 0; scanf("%d", &n); int count=count_bit_one(n); printf("%d\n",...原创 2021-09-02 17:51:24 · 51 阅读 · 0 评论 -
对两个数组进行交换
#include<stdio.h>int main(){ int arr1[] = { 1,3,5,7,9 }; int arr2[] = { 2,4,6,8,10 }; int i = 0; int sz = sizeof(arr1) / arr1[0]; int temp = 0; for (i = 0; i < sz; i++) { temp = arr1[i]; arr1[i] = arr2...原创 2021-09-01 22:44:08 · 150 阅读 · 0 评论 -
实现对数组元素的逆置
#include<stdio.h>void Init(int arr[], int sz){ int i = 0; for (i = 0; i < sz; i++) { arr[i] = 0; }}void Print(int arr[], int sz){ int i = 0; for (i = 0; i < sz; i++) { printf("%d ", arr[i]); ...原创 2021-08-31 22:26:59 · 239 阅读 · 0 评论 -
C语言实现三子棋
#define ROW 3#define COL 3#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>void InitBoard(char board[ROW][COL], int row, int col);void DisplayBoard(char board[ROW][COL], int row, int col);void PlayerMove原创 2021-08-16 17:01:28 · 56 阅读 · 0 评论 -
C语言实现扫雷
#include<stdio.h>#include<time.h>#include<stdlib.h>#include<windows.h>#define ROW 9#define COL 9#define ROWS ROW+2#define COLS COL+2#define EASY_COUNT 10void InitBoard(char board[ROWS][COLS], int rows, int cols,char set);v原创 2021-08-16 16:58:34 · 100 阅读 · 0 评论