
作业
阿彬要成为大牛
这个作者很懒,什么都没留下…
展开
-
.不使用(a+b)/2这种方式,求两个数的平均值。
int avrrage(int x,int y) { int sum = x + y; return sum >> 1; //return x&y+(x^y)>>1;}原创 2019-01-24 20:52:38 · 256 阅读 · 0 评论 -
C语言库函数
size_t Strlen(const char* str) { //检验合法性 assert(str != NULL); size_t count = 0; while (str[count] != '\0') { count++; } return count;}char* str(char* dest, const* src) { assert(dest != NULL...原创 2019-02-01 21:36:44 · 164 阅读 · 0 评论 -
写一个函数返回参数二进制中 1 的个数
int GetoneCount(int number) { int count = 0; for (int i = 0; i <= 32; ++i) { if (number&(1 << i)) count++; } return count;}原创 2019-01-22 19:35:39 · 130 阅读 · 0 评论 -
.获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
void Getbit(int num) { for (int i = 31; i >0;i-=2) { printf("%d ", (num>>i) & 1); } printf("\n"); for (int i = 30; i >=0; i-=2) { printf("%d ", (num >> i) & 1);原创 2019-01-22 21:25:57 · 151 阅读 · 0 评论 -
输出一个整数的每一位。
void printfbit(int num) { if (num > 9) { printfbit( num / 10); } printf("%d ", num % 10);}原创 2019-01-22 21:27:00 · 149 阅读 · 0 评论 -
编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同
int countDif(int x, int y) { int count=0; int i = 32; while (i >= 0) { if (((x >> i)&1) != ((y >> i)&1)) count++; --i; } return count;}原创 2019-01-22 21:28:43 · 158 阅读 · 0 评论 -
循环的一点练习
**5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;b2&&a!=3 ||b!=2&&a3B选手说:我第二,E第四; (b2&&e!=4)|| (b!=2&&e4)C选手说:我第一,D第二; (c1&&d!=2)||(c!=1&&d2)D选手说:C最后,我第三;...原创 2019-01-23 16:49:49 · 112 阅读 · 0 评论 -
可以扩容的通讯录
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>#include<assert.h>//实现的功能//增//删//改//查//动态分配空间 //开辟一个数据大小为5的//抽象数据类型typedef str...原创 2019-02-09 09:43:17 · 166 阅读 · 0 评论 -
3.编程实现: 一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。 请找出这个数字。(使用位运算)
int Differ(int val[],int len) { int ret = 0; for (int i = 0; i &lt; len; ++i) { ret = ret ^ val[i]; } return ret;}原创 2019-01-24 20:53:44 · 185 阅读 · 0 评论 -
判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1 =AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0.
void paunduan(char* dest,char* src) { int len = strlen(src); for (int i = 0; i < len; ++i) { eft_rotate(src, i); if (strcmp(dest, src) == 0) { prinft("找到了\n"); break; } if (i == len...翻译 2019-01-26 22:16:28 · 167 阅读 · 0 评论 -
.实现一个函数,可以左旋字符串中的k个字符。 ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB
void left_rotate(char* str , int k) { char temp = *str; char* cur = str; while (k--) { while (*(cur + 1)) { *cur = *(cur + 1); cur++; } *cur = temp; }}void nizhuanstring(char* left, ...原创 2019-01-26 22:15:54 · 206 阅读 · 0 评论 -
2.喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水, 给20元,可以多少汽水。 编程实现。
nt total = 0; int money = 20; int empty = 20; while (empty > 1) { total = money + empty/2; empty = empty / 2+empty%2; }原创 2019-01-26 22:14:34 · 242 阅读 · 0 评论 -
有一个字符数组的内容为:"student a am i", 请你将数组的内容改为"i am a student". 要求: 不能使用库函数。 只能开辟有限个空间(空间个数和字符串的长度无关)。
void reseve(char* str) { /*char* start = str; char* end = str + strlen(str)-1; if (*str) { char temp; temp = *start; *start = *end; *end = '\0'; reseve(start + 1); *end=temp; }*/ char...原创 2019-01-24 20:55:02 · 137 阅读 · 0 评论 -
写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和
**写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和,例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19 **代码:int DigitSum(int number) { int sum = 0; if (number < 0) { printf("输入有误\n"); } int i = number / 10; if...原创 2019-01-20 21:09:52 · 195 阅读 · 0 评论 -
归递和非递归分别实现求n的阶乘
归递int Factorial(int n) { if (n == 0) { printf("错误\n"); } if (n == 1) { return 1; } return Factorial(n - 1)*n;}非递归int factorial(int n) { int ret = 1; while (n > 1) { ret *= n; --...原创 2019-01-20 21:24:05 · 202 阅读 · 0 评论 -
递归方式实现打印一个整数的每一位
void GetBit(int i) { int m; m = i / 10; if (m > 0) { GetBit(m); } printf("%d\n",i%10);}原创 2019-01-20 21:32:45 · 234 阅读 · 0 评论 -
调整数组使奇数全部都位于偶数前面。
void SortByS(int arr[],int size) { for (int left = 0; left &lt; size; ++left) { if (arr[left] % 2 == 0) { for (int right = size-1; right &gt;= 0; --right) { if (arr[right] % 2 != 0&amp;&amp;...原创 2019-01-25 20:04:17 · 109 阅读 · 0 评论 -
杨氏矩阵 有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);
int Find_Num(int arr[3][3],int to_find,int row ,int col) { if (to_find<arr[0][0] || to_find>arr[ROW - 1][COL - 1]){ printf("没有要找的数\n"); return -1; } int r = 0, c = COL-1; while (r <=...原创 2019-01-25 20:05:17 · 468 阅读 · 0 评论 -
编写一个函数 reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数。
void reverse_string(char * string) { assert(string != NULL); char* start = string; char* end = string+strlen(string) - 1; while (start<end) { char temp; temp = *start; *start = *end; *e...原创 2019-01-21 12:13:37 · 688 阅读 · 1 评论 -
个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。
int pos = -1; int arr[] = { 1,1,2,2,3,3,5,7 }; int ret = 0; int x1=0; int x2=0; for (int i = 0; i < sizeof(arr); ++i) { ret = ret ^ arr[i]; } for (int i = 0; i < 32; ++i) { if ((ret &...原创 2019-01-26 22:06:59 · 110 阅读 · 0 评论 -
重定向的shell
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <ctype.h>#include <sys/wait.h>#include <fcntl.h>char cmd[1024] = {...原创 2019-05-06 08:43:09 · 159 阅读 · 0 评论