
c语言习题
抖立FLAG
你这个年龄,怎么睡得着觉?
展开
-
求两个数的最大公约数。
求两个数的最大公约数。// 方法一#include <stdio.h>#include <windows.h>#pragma warning(disable: 4996)int GreastCommon(int x, int y){ int min = x > y ? y : x; // 找出x ,y 中较小的数。 while (min &g...原创 2019-05-08 22:02:39 · 312 阅读 · 0 评论 -
将参数字符串中的字符反向排列。
**编写一个函数 reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中的字符串操作函数。**#include<stdio.h>#include<windows.h>#include<stdlib.h>#pragma warning (disable : 4996)vo...原创 2019-07-08 13:35:52 · 212 阅读 · 0 评论 -
编写一个程序,可以一直接收键盘字符, 如果是小写字符就输出对应的大写字符, 如果接收的是大写字符,就输出对应的小写字符, 如果是数字不输出。
**编写一个程序,可以一直接收键盘字符, 如果是小写字符就输出对应的大写字符, 如果接收的是大写字符,就输出对应的小写字符, 如果是数字不输出。 **'a' == 97 'A' == 65'a' - 'A' = 32#include<stdio.h>#include<windows.h>int main(){ char c = 0; while ...原创 2019-07-03 16:06:25 · 138 阅读 · 0 评论 -
计算器(函数指针数组运用)——转移表
#include<stdio.h>#include<windows.h>#pragma warning(disable:4996)int _add(int x, int y){ return x + y;}int _sub(int x, int y){ return x - y;}int _mul(int x, int y){ return ...原创 2019-07-09 14:07:49 · 125 阅读 · 0 评论 -
创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值。
**创建一个数组,实现函数init()初始化数组、实现empty()清空数组、实现reverse()函数完成数组元素的逆置。要求:自己设计函数的参数,返回值。 **传参时,会发生数据拷贝,为了减轻在数组传参过程的的硬拷贝,所以在数组传参时,会将数组的地址传入;因此数组在传参时,要发生降维,降维成指向数组内部元素类型的指针, #include<stdio.h>#in...原创 2019-07-05 11:38:07 · 378 阅读 · 0 评论 -
一个数如果恰好等于它的因子之和,这个数就成为“完数”。 例如,28的因子为1,2,4,7,14。而28=1+2+4+7+14,因此28是“完数”。编程找出1000之内的所有完数,并按下面格
一个数如果恰好等于它的因子之和,这个数就成为“完数”。例如,28的因子为1,2,4,7,14。而28=1+2+4+7+14,因此28是“完数”(不包含1)。编程找出1000之内的所有完数,并按下面格式输出其因子:28 its factors are 1,2,4,7,14#include<stdio.h>#include<windows.h>#include<...原创 2019-07-05 20:27:32 · 6743 阅读 · 0 评论 -
模拟实现qsort函数(冒泡)
#include<stdio.h>#include<windows.h>#pragma warning (disable :4996)int my_Copmar(const void *xp, const void*yp){ int * _xp = (int *)xp; int * _yp = (int *)yp; if (*_xp > *_yp) ...原创 2019-07-11 12:24:12 · 207 阅读 · 0 评论 -
递归和非递归分别实现求第n个斐波那契数
斐波那契数列(Fibonacci sequence), 又称黄金分割数列、又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……//方法一: 循环非递归#include<stdio.h>#include<windows.h>#pragma warning (disable : 4996)int fi...原创 2019-07-06 12:15:31 · 412 阅读 · 0 评论 -
编写一个函数实现n^k,使用递归实现 。
编写一个函数实现n^k,使用递归实现 。include<stdio.h>#include<windows.h>#pragma warning (disable : 4996)int kTh_Power(int n , int k){ if (0 == k){ return 1; } return n * kTh_Power(n, k -...原创 2019-07-06 21:00:07 · 241 阅读 · 0 评论 -
递归求一个数的各个位数之和
**写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和, 例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19 **#include<stdio.h>#include<windows.h>#pragma warning (disable :4996)int sumDigs(unsigned int n){ i...原创 2019-07-07 13:58:09 · 3204 阅读 · 2 评论 -
写一个函数返回参数二进制中 1 的个数
**写一个函数返回参数二进制中 1 的个数比如: 15 0000 1111 4 个 1程序原型:int count_one_bits(unsigned int value){// 返回 1的位数} **/*方法一二采用位运算,对输入数据的每个bit位与 1 相与,如果是1,则计数器加一。*/ #include<stdio.h>#include<windo...原创 2019-06-01 13:48:35 · 295 阅读 · 0 评论 -
求一个非负数,二进制中一的个数。
// 方法一: 将 1 左移位 ( << ),按位&, 全1为1,否则为0.int Sum_1(int number){ int i = 0; int count = 0; for (; i < 32; i++){ // 不断将 1 向左移一位, 再用number 与 不断左移后的1相与, // 即: number & (1 ...原创 2019-05-23 22:09:44 · 870 阅读 · 0 评论 -
编写函数,不允许创建临时变量,求字符串长度
// 递归 #include <stdio.h>#include <windows.h>#pragma warning (disable : 4996)int Strlen(char * str){ // 传入地址 if( *str == '\0'){ // 若 str 储存地址所指的内存上存储的是 ' \0 ' return 0; } // ...原创 2019-05-14 00:49:55 · 182 阅读 · 0 评论 -
写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回-1.(折半查找)
#include<stdio.h>#include<windows.h>#pragma wraning(disable : 4996)int BinSearch(int a[],int num , int x){ int left = 0; int right = num - 1; // 不要忽略 left 和 right 相等的情况,当所查找...原创 2019-05-09 22:03:27 · 284 阅读 · 0 评论 -
编写代码,演示多字符从两端移动,向中间汇聚。
#include<stdio.h>#include<windows.h>#pragma warning(disable : 4996)void ShowString( ){ char src_str[] = "#######################################"; char dst_str[] = "****************...原创 2019-05-09 23:04:52 · 186 阅读 · 0 评论 -
数组中,除了一个数字外其他数字都是成对出现,找出这个数字
#include <stdio.h>#include <windows.h>#include <math.h >#pragma warning (disable : 4996) int FindNumber(int arr[] , int len){ int number = 0; for (int i = 0; i < len; i++...原创 2019-05-14 23:23:06 · 398 阅读 · 0 评论 -
接收一个无符号整型值,按顺序打印出它的每一位。输入 1234 输出 1 2 3 4
#include <stdio.h>#include <windows.h>#pragma warning (disable : 4996)void PrintNumber(int x){ // x若大于个位, if (x > 9){ PrintNumber(x / 10) ; // 自己吊自己到下一位 }// x为个位数 printf("...原创 2019-05-14 23:33:23 · 232 阅读 · 0 评论 -
模拟用户登录
#include <stdio.h>#include <windows.h>#include <string.h>#pragma warning (disable : 4996)const char * name = "laowang"; // char * const char * password = "123456"; void...原创 2019-05-10 15:09:53 · 895 阅读 · 0 评论 -
在一个数组中找出只出现一次的两个数字,其余数字全部成对出现。
#include <stdio.h>#include <windows.h>void findNumber( int a[] , int len){ int num = 0; int pos = 0; int x = 0; int y = 0; int i = 0; // 通过异或 求出两个只出现一次的数组元素的 异或的结果 for (; i &l...原创 2019-05-16 21:20:16 · 415 阅读 · 0 评论 -
C语言实现 —— 三子棋!!!
在3*3矩阵中, 玩家’X’ 与 电脑’O’实现三子棋游戏。功能实现:void ShowMU();// 实现展示游戏菜单void Game();//开始游戏void InitBoard(char board[][COL], int row, int col); // 初始化棋盘void ShowBoard(char board[][COL], int row, int col); ...原创 2019-05-21 16:24:01 · 212 阅读 · 0 评论 -
汉诺塔问题是一个古典的数学模型,是一个用递归问题解决的典型例子,问题如下:古代有个梵塔,塔内有3个座A,B,C,开始时A座上有64个盘子,盘子大小不定,大的在下,小的在上。有一个老和尚想把这64个盘子
汉诺塔问题是一个古典的数学模型,是一个用递归问题解决的典型例子,问题如下:古代有个梵塔,塔内有3个座A,B,C,开始时A座上有64个盘子,盘子大小不定,大的在下,小的在上。有一个老和尚想把这64个盘子从A移到C,但规定一次只能移动一个盘子,且在移动过程中在3个座上始终保持大盘在下,小盘在上,在移动过程中可利用B座。*C 为目的基座将n个盘子看成两部分,前 n-1 块看作一个整体,和 第 n 块...原创 2019-05-17 17:20:20 · 4886 阅读 · 0 评论 -
递归方式实现打印一个整数的每一位
递归方式实现打印一个整数的每一位#include<stdio.h>#include<windows.h>#pragma warning (disable :4996)void printDigs(unsigned int n){ if (n > 9){ printDigs(n / 10); } printf("%d\n",...原创 2019-07-07 14:12:01 · 182 阅读 · 0 评论