demo_2_27
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int count_bit_one(unsigned int n)
{
int count = 0;
//算法一
/*while (n)
{
if (n % 2 == 1)
{
count++;
}
n /= 2;
}*/
//算法二
/*int i = 0;
for (i = 0; i < 32; i++)
{
if (((n >> i) & 1) == 1)
{
count++;
}
}*/
//算法三
while (n)
{
n = n&(n - 1);
count++;
}
return count;
}
int main()
{
int a = 0;
scanf("%d", &a);
//写一个函数求a的二进制(补码)表中有几个1
int count = count_bit_one(a);
printf("count=%d\n", count);
//system("pause");
return 0;
}
int get_diff_bit(int m, int n)
{
int tmp = m^n;
int count = 0;
//return count_bit_one(tmp);
while (tmp)
{
tmp = tmp&(tmp - 1);
count++;
}
return count;
}
int main()
{
int m = 0;
int n = 0;
scanf("%d%d", &m, &n);
get_diff_bit(m,n);//获取二进制中
printf("count = %d\n", count);
return 0;
}
void print(int m)
{
int i = 0;
printf("奇数位");
for (i = 30; i >= 0; i-= 2)
{
printf("%d", (m >> i)&i);
}
printf("\n");
printf("偶数位");
for (i = 31; i >= 1; i -= 2)
{
printf("%d", (m >> i)&i);
}
printf("\n");
}
int main()
{
int m = 0;
scanf("%d", &m);
print(m);
return 0;
}
//计算二进制位数中1的个数
void print(int *p, int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d", *(p + i));
}
}
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int sz = sizeof(arr) / sizeof(arr[0]);
print(arr, sz);
return 0;
}
//乘法口诀表
void print_table(int n)
{
int i = 0;
for (i = 1; i <= n; i++)
{
int j = 0;
for (j = 1; j <= i; j++)
{
printf("%d*%d=%-3d", i, j, i*j);
}
printf("\n");
}
}
int main()
{
int n = 0;
scanf("%d", &n);
print_table(n);
return 0;
}
//将字符串逆序排列
//1.计数器
//2.指针-指针
//3.递归
int my_strlen(char* str)
{
int count = 0;
while (*str != '\0')
{
count++;
str++;
}
return count;
}
void reverse_string(char arr[])
{
int left = 0;
int right = my_strlen(arr)-1;
while (left < right)
{
int tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
}
int main()
{
char arr[] = "abcdef";
reverse_string(arr);
printf("%s\n", arr);
return 0;
}
//递归方法
//1.a和f的交换
//2.逆序 b c d e
void reverse_string(char arr[])
{
char tmp = arr[0];//s1
int len = my_strlen(arr);
arr[0] = arr[len - 1];//s2
arr[len - 1] = '\0';
//递归必须要有限制条件
if (strlen(arr + 1) >= 2)//s3
{
reverse_string(arr + 1);//把第二个地址传进去
}
arr[len - 1] = tmp;//s4
}
//输入非负整数,计算个位之和
int DigitSum(unsigned int num)
{
if (num > 9)
{
return DigitSum(num / 10) + num % 10;
}
else{
return num;
}
}
int main()
{
unsigned int num = 0;
scanf("%d", &num);
int ret = DigitSum(num);
printf("ret = %d\n", ret);
return 0;
}
//递归实现N的K次方
int Pow(int n, int k)
{
//n^k=n*n^(k-1)
if (k < 0)
{
return (1.0 / Pow(n, -k));
}
else if (k == 0)
{
return 1;
}
else{
return n*Pow(n, k - 1);
}
}
int main()
{
int n = 0;
int k = 0;
double ret = Pow(n, k);
printf("ret = %lf\n", ret);
return 0;
}
//描述一个学生 - 一些数据
//1.名字
//2.年龄
//3.电话
//4.性别
//struct - 结构体关键字 Stu - 结构体标签 struct Stu - 结构体类型
typedef struct Stu
{
//成员变量
char name[20];
short age;
char tele[12];
char sex[5];
}Stu;//三个全局的结构体变量
int main()
{
//变量的创建
struct Stu s;//局部的结构体变量
Stu s1 = {"张三",20,"15249287076","男"};//s1结构体在创建的同时 - 就是赋初值
return 0;
}
struct S
{
int a;
char c;
char arr[20];
double d;
};
struct T
{
char ch[10];
struct S s;
char *pc;
};
int main()
{
char arr[] = "hello bit\n";
struct T t = { "hehe", {100,'w',"hello world",3.14}, arr };
//结构体嵌套 - 结构体包含结构体 - 里面也要一对大括号进行初始化
printf("%s\n", t.ch);//hehe
printf("%s\n", t.s.arr);//hello world
printf("%lf\n", t.s.d);//3.14
printf("%s\n", t.pc);//hello bit
}
typedef struct Stu
{
char name[20];
short age;
char tele[12];
char sex[5];
}Stu;
void Print1(Stu tmp)
{
printf("name:%s\n", tmp.name);
printf("age:%d\n", tmp.age);
printf("tele:%s\n", tmp.tele);
printf("sex:%s\n", tmp.sex);
}
void Print2(Stu* ps)
{
printf("name: %s\n", ps -> name);
printf("age: %d\n", ps -> age);
printf("tele: %s\n", ps -> tele);
printf("sex: %s\n", ps -> sex);
}
int main()
{
Stu s = { "李四", 40, "15923668988", "男" };
Print1(s);//结构体传参
Print2(&s);//取地址传参
//Print1和Print2哪个更好?
//答案:Print2
//原因:函数传参的时候,参数需要压栈的。如果传递的一个结构体对象的时候,结构体过大,参数
// 压栈的系统开销较大,所以会导致性能的下降。
// 因此,结构体传参的时候,要传结构体的地址。
return 0;
}
int Add(int x, int y)
{
int z = 0;
z = x + y;
return z;
}
int main()
{
int a = 10;
int b = 20;
int ret = 0;
ret = Add(a, b);
return 0;
}
demo_2_27的更多相关文章
随机推荐
- Spark-寒假-实验2
1. 计算级数 代码: import scala.io.StdIn object jishu { def main(args:Array[String]) { var Sum=0.0 println( ...
- CesiumJS新增官方TypeScript类型定义
Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 在当前的1.70版本中,CesiumJS现在附带了正式的Type ...
- redis实现简易在线聊天室
redis_flask简易聊天室 项目构建 这时一个基于Redis数据库的简单小项目,使用redis缓存数据,并通过flask部署到浏览器,运行截图如下: 输入名字后,就可以登陆到聊天室,主要包括三个 ...
- Redis的几点积累
1.Redis比memcache快 Redis具有事务,持久化等机制,但是它还能做到高性能,原因包括如下: Libevent.和Memcached不同,Redis并没有选择libevent.Libev ...
- vue学习9-更新视图
<!DOCTYPE html> <html lang='en'> <head> <meta charset='UTF-8'> <meta ht ...
- 集合框架-Map集合-TreeMap存储自定义对象
1 package cn.itcast.p8.treemap.demo; 2 3 4 import java.util.Iterator; 5 import java.util.Map; 6 impo ...
- IEEE754浮点数表示法
IEEE二进制浮点数算术标准(ANSI/IEEE Std 754-1985)是一套规定如何用二进制表示浮点数的标准.就像"补码规则"建立了二进制位和正负数的一一对应关系一样,IEE ...
- 女朋友让我深夜十二点催她睡觉,我有Python我就不干
事情是这样的:今天晚上,女朋友让我十二点催她睡觉. 不过,可是我实在太困了,熬不下去-- 是吧?女朋友哪有睡觉重要? 但,女朋友的命令,我是不敢违抗的-- 但是睡觉也不能缺! 这时候我们该怎么办呢?是 ...
- python程序语法元素分析
#TemConvert.py TempStr = input("请输入带有符号的温度值:") if TempStr[-1] in ['F', 'f']: C = (eval(Tem ...
- background-position:color url(image) -left -up no-repeat;
转载请注明来源:https://www.cnblogs.com/hookjc/ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...