- 博客(18)
- 收藏
- 关注
原创 使用宏实现两个数中求较大值
#include#include#define MAX(x,y) x>y?x:yvoid main(){ int a, b; scanf("%d%d", &a, &b); printf("%d\n", MAX(a, b)); system("pause"); return 0;}其中,x>y?x:y为if (a > b) return a;else r
2017-10-28 16:59:01 528
原创 写一个宏可以将一个数字的奇数位和偶数位交换。
交换一个数字(二进制数)的奇偶数位一、进行按位操作,将奇数位和偶数位分别提取出来二、合并提取出的数字例:对 5(0101)进行操作变成 10(1010)#include#include#define M(x) ((((x)&(0x55555555)) > 1))//提取x的奇数位并左移一位 偶数位左移一位 int main(){
2017-10-28 16:38:44 274
原创 使用函数,调整数组使奇数全部都位于偶数前面
输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分下列代码为无函数调用时的代码#include#includeint main(){ int a[] = { 0, 1, 2, 3, 4, 9, 0, 2, 3, 1, 4 }; int len = sizeof(a) / sizeof(a[0]); in
2017-10-28 15:22:21 295
原创 一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的,找出这个数字(使用位运算)
位运算包含按位与、按位或、按位异或、按位取反、左移和右移按位与:& 1 & 1 = 1 1 & 0 = 0 0 & 1 =0 0 & 0 = 0按位或:| 1 | 1 = 1 1 | 0 = 1 0 | 1 = 1 0 | 0 = 0按位异或:^ 1 ^ 1 = 0 1 ^ 0 = 1 0 ^ 1 = 1 0 ^
2017-10-26 00:34:55 222
原创 .编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。
例:25在32位机器上25这个值包含下列各位: 00000000000000000000000000011001 翻转后:(2550136832) 10011000000000000000000000000000 程序结果返回: 2550136832 将value的二进制值从右至左依次从左至右赋给另一个数代码如下:#include#includeint
2017-10-25 20:47:08 484
原创 不使用(a+b)/2这种方式,求两个数的平均值。
因为不能使用(a+b)/2这种方式,故用右移这种计算方式。(右移一位相当于除二)代码如下:#include#includeint main(){ int a, b,c; scanf_s("%d,%d", &a, &b); c = a + b; c = c >> 1; printf("%d", c); system("pause"); return 0;}
2017-10-25 20:29:59 305
原创 打印杨辉三角
#include#include#define M 10int main(){ int a[M][M], i, j; for (i = 0; i<M; i++) for (j = 0; j <= i; j++) { if (i == j || j == 0) a[i][j] = 1; else a[i][j] = a[i - 1][j] + a[
2017-10-25 19:04:14 212
原创 警查审问四名嫌疑人,其中三人说真话,一人说谎。
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯 的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说的是假话。 现在请根据这些信息,写一个程序来确定到底谁是凶手。需要注意的是如何判定三人说真话,一人说谎。已知每人说谎为0,说真话为1,所以只需判断三人的语句加起来的总和
2017-10-23 16:22:35 3241
原创 5位运动员参加了10米台跳水比赛,预测比赛结果
A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三; E选手说:我第四,A第一; 比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。值得注意的是比赛成绩可以并列,即有多个第一或第二名。#include#includeint main(){ int a = 0; int b =
2017-10-21 19:07:16 330
原创 实现一个函数,判断一个数是不是素数
#include #include sushu(int m){ int i; for (i = 2; i <= m; i++); { if (m%i == 0) printf("%d是素数", m); else printf("%d不是素数", m); }}int main(){ int a; scanf("%d", &a); sushu(a); s
2017-10-15 16:12:10 887
原创 实现一个函数判断year是不是润年。
#include #include void RN(int i){ if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) printf("是闰年"); else printf("不是闰年");}int main(){ int a; scanf_s("%d ", &a); RN(a); system("pause"); r
2017-10-14 17:48:09 263
原创 使用函数实现两个数的交换。
在函数中交换应为交换地址而非单纯的交换数字大小。#include #include void swap(int*pa, int*pb){ int tmp; tmp = *pa; *pa = *pb; *pb = tmp;}int main(){ int a, b; scanf_s("%d %d", &a, &b); swap(&a, &b); printf("%d
2017-10-14 17:22:39 2177
原创 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定
实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定, 输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表。#include #include cheng(int m){ int i, j; for (i = 1; i <= m; i++) { for (j = 1; j <= i; j++) printf("%d*%d=%2d ", i,
2017-10-14 17:19:09 491
原创 c语言中的运算符
C语言运算符是说明特定操作的符号,它是构造C语言表达式的工具。C语言的运算异常丰富,除了控制语句和输入输出以外的几乎所有的基本操作都为运算符处理。除了常见的三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符,比如位运算符。 一、算术运算符 1. 加法运算符 + 除了可以进行加法运算外,还可以表示正号:+5212.减法
2017-10-05 14:53:23 854
原创 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同
输入例子: 1999 2299 输出例子:7 #define _CRT_SECURE_NO_WARNINGS#include#include#includeint main(){ int i = 0; int m = 0; int n = 0; int count = 0; printf("请输入两个数:\n"); scanf("%d%d", &m, &n); fo
2017-10-05 14:45:41 254
原创 输出一个整数的每一位
_CRT_SECURE_NO_WARNINGS#include#includeint main(){ int num = 0; printf("请输入一个整数:"); scanf("%d", &num); if (num > 9) { printf("%d\t", num % 10); num /= 10; } system("pause"); return 0;
2017-10-05 14:43:55 382
原创 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
#define _CRT_SECURE_NO_WARNINGS#includeint main(){ int arr[32]; int m = 0, i = 0, count = 0; printf("请输入一个十进制数:\n"); scanf("%d", &m); for (i = 0; m != 0; i++) { arr[i] = m % 2; m = m / 2
2017-10-05 14:14:46 239
原创 写一个函数返回参数二进制中 1 的个数
#define _CRT_SECURE_NO_WARNINGS#include#includeint count_one_bits(unsigned int value){ int i = 0; int count = 0; for (i = 0; i <= 32;i++) { if (value % 2 == 1) { count++; } value =
2017-10-03 18:04:59 184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人