C-练习题
满眼*星辰
一名努力学习编程的大三学生
展开
-
全国高校计算机能力挑战赛C语言编程题
1、#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<string.h>#include<math.h>//16.输入一行由字符a~z和A~Z组成的字符串,字符串长度 <= 10000,求其中任意两个字符出现次数的差值的绝对值//输入 ://第一行输入字符串第二行输入两个字符。输出 ://输出这两个字符出现次数的差值的绝对值输入样例 ://AbddeDfacd//A d//输原创 2020-12-04 15:06:37 · 5156 阅读 · 2 评论 -
练手小项目--C语言超详细动态内存版扫雷
要做出来扫雷小游戏肯定要先理解它的机制和玩法。1、方格中又若干个雷,点到雷上,游戏结束,走完没有雷的格子,游戏通关。2、没有雷的方格的数字代表的含义:表示周围一圈的八个方格中又几个雷。——————————————————————————————————————既然熟悉了游戏规则,那我们来编写每个模块的函数吧。1、首先需要创建出来一个二维矩阵,每个元素代表游戏中的每个方格...原创 2020-12-01 21:52:28 · 385 阅读 · 0 评论 -
C--开辟输入n行3列二维数组的bug
今天在刷题的时候遇到里一个bug,试了很多办法都没有解决,最后用malloc开辟动态内存解决了这个问题,期间遇到了各种bug,最后来总结一下我解决问题的过程。先把题目摆在这里若有非零整数A、B、C,将其组成两个等式(A@B)#C = 24、A@(B#C) = 24,其中@和#为运算符号’+’、’-’、"*、’/’、’%'之一,同一符号可选择一次或多次,如果这两个等式至少有一个成立,则输出YES,否则输出NO。输入:第一行输入正整数N,表示有N组数据。(N<1000)其后N行每行输入非零原创 2020-12-01 21:24:38 · 608 阅读 · 2 评论 -
练习--指针进阶算法题
1、杨氏矩阵有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。要求:时间复杂度小于O(N);#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<assert.h>#define ROW 3#define COL 3//有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。//要求原创 2020-11-29 23:11:20 · 458 阅读 · 1 评论 -
逢看必会的三子棋小游戏:原来可以这么简单
三子棋游戏规则:是黑白棋的一种。三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙、井字棋等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了。算法思路:打印游戏选择界面:玩家输入1开始游戏,输入0结束游戏。定义3*3的数组,用来存放每个格子的元素。编写函数initboard(),用来初始化每个格子中元素。编写打印棋盘showboard(),利用循环和判断来使棋盘打印出来,如图编写玩家移动函数playermove(),输原创 2020-11-14 17:20:58 · 3432 阅读 · 0 评论 -
将一句话的单词进行倒置,标点不倒置
题目:将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I输入描述:每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100输出描述:依次输出倒置之后的字符串,以空格分割#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <string.h>void reverse(char* left, char*原创 2020-11-23 20:07:11 · 1521 阅读 · 0 评论 -
qsort的模拟实现和练习
C 库函数 - qsort()声明:void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void , const void))base – 指向要排序的数组的第一个元素的指针。nitems – 由 base 指向的数组中元素的个数。size – 数组中每个元素的大小,以字节为单位。compar – 用来比较两个元素的函数。模拟实现用的冒泡排序#define _CRT_SECURE_NO_WARN原创 2020-11-22 18:56:31 · 232 阅读 · 0 评论 -
练习--指针基础算法题
1、写一个函数打印arr数组的内容,不使用数组下标,使用指针。arr是一个整形一维数组。#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>//写一个函数打印arr数组的内容,不使用数组下标,使用指针。//arr是一个整形一维数组。void PrintArr(int *p,int len){ for (int i = 0; i < len; i++) { printf("%d ", *(p + i)); }}原创 2020-11-15 21:49:02 · 551 阅读 · 0 评论 -
练习--操作符基础算法题
1、编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?输入例子:1999 2299输出例子:7#include <stdio.h>//编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?//输入例子 ://1999 2299//输出例子 : 7int differ(int a, int b){ int c = a ^ b; int count = 0; while (c) { count++;原创 2020-11-15 15:29:51 · 181 阅读 · 0 评论 -
练习--数组基础算法题
1、实现一个对整形数组的冒泡排序#include <stdio.h>//实现一个对整形数组的冒泡排序void BubbleSort(int arr[],int len){ int i; int j; int a; int b; for (j = 0; j < len-1; j++) { for (i = 0; i < len-j-1; i++) { if (arr[i]>arr[i + 1]) { int tmp = 0;原创 2020-11-15 15:25:00 · 182 阅读 · 0 评论 -
练习--递归基础算法题
1、递归方式实现打印一个整数的每一位#include <stdio.h>//递归方式实现打印一个整数的每一位void Put(int n){ if (n > 9) { Put(n/10); } printf("%d\n",n%10);}int main(){ Put(123); return 0;}2、递归和非递归分别实现求n的阶乘(不考虑溢出的问题)#include <stdio.h>//递归和非递归分别实现求n的阶乘(不原创 2020-11-08 11:46:46 · 727 阅读 · 0 评论 -
练习--函数调用的基础算法题
1、 实现一个函数,判断一个数是不是素数。 利用上面实现的函数打印100到200之间的素数。#include <stdio.h>#include<math.h>//实现一个函数,判断一个数是不是素数。//利用上面实现的函数打印100到200之间的素数。void IsPrime(int a){ int i; for (i = 2; i < sqrt(a); i++) { if (a%i == 0) { break; } } if (i原创 2020-11-08 00:09:21 · 306 阅读 · 0 评论 -
练习--基础循环算法题
基础算法题1、给定两个数,求这两个数的最大公约数2、打印1000年到2000年之间的闰年3、写一个代码:打印100~200之间的素数4、编写程序数一下 1到 100 的所有整数中出现多少个数字95、计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值,打印出结果6、求10 个整数中最大值7、在屏幕上输出9 * 9乘法口诀表8、猜数字游戏9、编写代码在一个整形有序数组中查找具体的某个数 要求:找到了就打印数字所在的下标,找不到则输出:原创 2020-11-04 00:14:15 · 431 阅读 · 0 评论 -
C语言--原来库函数也可以自己编
库函数模拟1.模拟实现strlen2、模拟实现strcpy3、模拟实现strcmp4、模拟实现strcat5、模拟实现strstr6、模拟实现memcpy7、模拟实现memmove1.模拟实现strlen#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<assert.h>//模拟实现strlenint MyStrlen(const char *str){ assert(str != NULL原创 2020-11-28 20:28:04 · 1413 阅读 · 0 评论