
C语言练习题
ImwaterP
Less interests,more interest.
展开
-
把字符串中的每个空格替换成“%20”.例如:输入“We are happy.”,则输出“We%20are%20happy.”
实现一个函数,把字符串中的每个空格替换成“%20”.例如:输入“We are happy.”,则输出“We%20are%20happy.”#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>void Replace(char str[], int lenth){ if (NULL == str || 0 == lenth) return; int count = 0; //计空格数 int len = 0; //计算str中包含多原创 2021-10-17 11:09:50 · 1380 阅读 · 0 评论 -
如何求两个二进制位不同的个数
一个很神奇的算法,有多少个不同位,就循环多少次。#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main(){ int num1 = 0; int num2 = 0; int Temp = 0; int count = 0; printf("请输入两个数来比较他们二进制码不同位的个数:\n"); scanf("%d %d", &num1, &num2); Temp = num1 ^ num2;原创 2021-10-02 09:58:01 · 1065 阅读 · 2 评论 -
常用字符串函数的仿写(strlen、strcpy、strcat、strcmp、strstr、momcpy、mommove)
长度不受限制的字符串函数:strcpy;;strcat; strcmp长度受限制的字符串函数:strncpy;strncat;strncmp(相对安全)memcpy - 完成不重叠的内存拷贝memmove - 可以完成内存重叠的内存拷贝字符操作函数的仿写1、strstr//主函数int main(){ char arr[] = "abcdefg"; char* ret = my_strstr(arr, "cde"); printf("%s\n", ret); return 0;}原创 2021-09-21 11:43:05 · 679 阅读 · 0 评论 -
【算法题】输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为o(n)。
题目:输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为o(n)。例如输入的数组为{1, -2, 3, 10, -4, 7, 2, -5},和最大的子数组为{3, 10, -4, 7, 2},因此输出为该子数组的和18首先把主函数写出来int main(){ //输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。 //要求时间复杂度为o(n)。例如输入的数组为{1原创 2021-08-26 12:12:02 · 2560 阅读 · 0 评论 -
不创建新变量如何实现两数的交换
本文介绍了两种方法,可以不通过中间变量直接交换两个变量的值。原创 2021-07-31 10:01:18 · 1038 阅读 · 0 评论 -
C语言实现扫雷小游戏(初级版)
尝试写的第二个小游戏:扫雷游戏规则是在一个9*9的棋盘上,随机分布了10个地雷,输入坐标号可以得到该坐标附近位置地雷数。直到把所有不含有地雷的方格全部选出,即可获胜。本次同样是三个文件夹game.h:包含所有函数的声明和常量game.c:所有游戏本身的函数本体test.c:包含游戏调试的所有代码game.h#pragma once#define ROW 9 //这里是棋盘的规格#define COL 9#define ROWS 11 //为了防止数组越界,将棋盘“放大一圈”。#de原创 2021-07-30 21:58:50 · 590 阅读 · 3 评论 -
小游戏:井字棋(电脑入门级对战)
井字棋是一个很常见的小游戏。要求对战双方在一个“井”形的棋盘里分别下“*”棋子或者“#”棋子,谁先连成3个,谁就赢。本次使用C语言来实现这个小游戏。由于使用函数较多,所以采用多文件的方式方便梳理代码思路。本次一共有三个文件:**game.h:包含了game.c文件中函数的声明和库函数的声明。**#pragma once#define ROW 3#define COL 3#include<stdio.h>#include<stdlib.h>#include&原创 2021-07-30 09:00:15 · 640 阅读 · 0 评论 -
如何实现字符串逆序
void reverse_string(char *s){ //头尾交换非递归方法 char *left = s; char *right = s + strlen(s) - 1; while (left < right) { char tmp = *left; *left = *right; *right = tmp; left++; right--; }}void reverse_string(char* arr){ int len = strlen(a原创 2021-07-26 18:06:57 · 284 阅读 · 0 评论