字符串的打印

字符串的结束标志"\0" 而arr里没有\0
没有办法找到结束 所以无法计算长度 是随机值
要在{'b','i','t','\0'}计算长度是3

字符表示 c : \t e s t \121
\xdd
打印长度为7
局部定义优先

当局部和全局相同变量时 局部变量优先
main内是局部变量 所以打印 为1
计算数的余数和商
int main() {
int a=0;
int b=0;
int shang=0;
int yushu=0;
scanf("%d %d",&a,&b);
shang=a/b;
yushu=a%b;
printf("%d %d",shang,yushu);
return 0;
}
前置++和后置++计算

++a 先++后使用 c=6 a=6
++c 先++后使用 b=7 c=7
c++ c=8
++a a=7
a++ a=8
b=b+(a+c)=7+8+8=23
浮点数的打印

a/b 因为a是int类型 b是int类型
只能打印整数 7/2 是3
a/c 7/2.0f 3.50000
小数点默认打印6位小数
两数相乘或相除只有一边为小数 打印出的才有小数
限定宽度和小数位
限定宽度 包括小数点位 如%5d
而限制小数位 是%5.2f 表示显示小数点后二位
不足五位 前面空出几位
如打印 2.5 空2.50

%5d 限制宽度 五位 打印12345
switch相关练习

当 a=1时
由于 switch中没有beak 跳出循环 语句继续执行 直到最后一个 b=0
所以 b=0、
打印1/1-1/2+1/3-1/4+1/5 +1/100

二分查找
所谓二分查找 就是折半思想
条件
1有序
2从小到大排列
列如 数组 int arr[] = { 1,2,3,4,5,6,7,8,9,10 }
从数组中找到7
如果一个个从中遍历数组 很麻烦 数组定义有几万个值 折一半 大大提高效率
cpp
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int left = 0;
int right = sizeof(arr) / sizeof(arr[0]) - 1;
int key = 7;//要找的数字
int mid = 0;//记录中间元素的下标
int find = 0;
while (left <= right)
{
mid = (left + right) / 2;
if (arr[mid] > key)
{
right = mid - 1;
}
else if (arr[mid] < key)
{
left = mid + 1;
}
else
{
find = 1;
break;
}
}
if (1 == find)
printf("找到了,下标是%d\n",mid);
else
printf("没找到");
return 0;
}
编写程序数一下 1到 100 的所有整数中出现多少个数字9
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//编写程序数一下 1到 100 的所有整数中出现多少个数字9
int main()
{
int i = 0;
int j = 0;
for (i = 0; i <= 100; i++)
{
if (i % 10 == 9||i/10==9)
{
j++;
}
}
printf("%d", j);
return 0;
}
打印1000年到2000年之间的闰年
int main()
{
int i = 0;
for (i = 1000; i <= 2000; i++)
{
if ((i % 400 == 0) || (i % 4 ==0&& i % 100 != 0))
{
printf("%d", i);
}
}
return 0;
}
//求10 个整数中最大值
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int max = arr[0];
int i = 0;
for (i = 0; i < 10; i++)
{
if (arr[i]> max)
{
max = arr[i];
}
}
printf("%d", max);
return 0;
}
把3个数从大到小打印
int main()
{
int a;
int b;
int c;
while (scanf("%d %d %d", &a, &b, &c) != EOF)
{
if (a < b)
{
int d = a;
a = b;
b = d;
}
if (a < c)
{
int d = a;
a = c;
c = d;
}
if (b < c)
{
int d = b;
b = c;
c = d;
}
printf("%d %d %d", a, b, c);
}
return 0;
}