#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
//转换一下ASCll码未对应字符并输出他们73,32,99,97,110,32,100,111,32,105,116,33
//'a'的ascll码:97
//int main()
//{
// int arr[] = { 73,32,99,97,110,32,100,111,32,105,116,33 };
// int i = 0;
// //sizeof(arr):计算的是数组的总大小 单位是字节 sizeof(arr[0])计算的是数组元素的大小
// int sz = sizeof(arr) / sizeof(arr[0]);
// while (i < sz)
// {
// printf("%c", arr[i]);
// i++;
// }
// return 0;
//}
//输入一个人的出生日期,将该生日中的年、月、日分别输出
//年份::1990≤y≤2015 月份满足:1≤m≤12 日期满足:1≤d≤30
//输出要求 第一行为年 第二行为月 第三行为日 月和日只有一位前面补0
//int main()
//{
// //输入数据
// int year = 0;
// int month = 0;
// int day = 0;
// scanf("%4d%2d%2d", &year, &month, &day);
// //输出
// printf("year=%d\n",year);
// printf("month=%02d\n",month); //%02d: 2d表示要打印两位 0表示要补齐两位
// printf("day=%02d\n",day);
// return 0;
//}
//依次输入学生学号 以及三科(c语言,数学,英语)成绩 在屏幕上输出学生学号、三科成绩
//输入描述:学号和成绩之间用用英文分号隔开; 成绩之间用英文逗号隔开 学号在1-20000000 成绩用百分制
//int main()
//{
// int id = 0;
// float c = 0.0f; //只有0.0编译器会认为是double类型的数值 加个f会看成float
// float math = 0.0f;
// float eng = 0.0f;
// //输入
// scanf("%d;%f,%f,%f",&id,&c,&math,&eng);
//
// //输出.
// printf("the each subject score of No.%d is %.2f,%.2f,%.2f.\n", id,c,math,eng);
// return 0;
//}
//找出四个数中最大数
//输入描述:一行 四个整数 用空格隔开
//输出:一行 一个整数 为最大数
//int main()
//{
// int arr [4] = { 0 };//四个数下标为0123
// int i = 0;
// //输入
// while (i < 4)
// {
// scanf("%d", arr[i]);
// i++;
// }
// //找最大值
// //假设第一个元素就是最大值
// int max = arr[0];
// i = 1;
// while (i < 4)
// {
// if (arr[i] > max)
// {
// max = arr[i];
// }
// i++;
// }
// printf("%d\n", max);
// return 0;
//}
//方法2
// int main()
//{
// int i = 1;
// int n = 0;
// int max = 0;
// //假设第一个数为最大
// scanf("%d",&max);
// while (i < 4)
// {
// scanf("%d", &n);
// if (n > max);
// max = n;
// i++;
// }
// printf("%d\n", max);
// return 0;
//}
//计算球的体积 给定一个球半径 V=4/3*πr三次方 π=3.1415926 体积小数点后保留三位
//int main()
//{
// double r = 0.0;
// double V = 0.0;
// scanf("%lf", &r);
//
// V = 4 / 3.0 * 3.1415926 * r * r * r; // 4/3.0表示结果小数
// printf("%.3lf\n", V);
//
// return 0;
//}
//计算BMI身体指数:体重公斤数数除以身高米数的平方
//输入:一行 两个整数 中间用一个空格分隔 例:75 185
// 输出:一行 BMI指数(保留两位小数)
//int main()
//{
// int w = 0;
// int h = 0;
//
// scanf("%d %d", &w, &h);
// float BMI = w / (h / 100.0) / (h / 100.0); //除以米数 厘米换成m
// printf("%.2f\n", BMI);
// return 0;
//}
for循环
//语法结构:
// for(表达式1;表达式2;表达式3) 式1为初始化部分 式2为条件判断部分 式3为调整部分
// 循环语句;
//打印1-10
//while语句
//int main()
//{
// int i = 1; //初始部分
// while (i <= 10) //判断部分
// {
// printf("%d", i);
// i++; //调整部分
// }
// return 0;
//}
//for语句:
//int main()
//{
// int i = 0;
// for (i = 1; i <= 10; i++)
// {
// printf("%d ", i);
// }
// return 0;
//}
//遇到break
//int main()
//{
// int i = 0;
// for (i = 1; i <= 10; i++)
// {
// if (i == 5)
// break;
// printf("%d ", i);
// }
// return 0;
//}
//遇到continue
//int main()
//{
// int i = 0;
// for (i = 1; i <= 10; i++)
// {
// if (i == 5)
// continue; ///continue:跳过后面的代码
// printf("%d ", i); //跳过了打印5
// }
// return 0;
//}
/ do while循环语法
//语法结构:
// do
// 循环语句;
// while(表达式);
//打印1-10
//int main()
//{
// int i = 1;
//
// do
// {
// printf("%d ", i);
// i++;
// }
// while (i <= 10);
// return 0;
//}
计算n的阶乘
//int main()
//{
// int i = 1;
// int n = 0;
// int ret = 1;
//
// scanf("%d ", &n);
// for (i = 1; i <= n; i++)
// {
// ret = ret * i;
// }
// printf("%d\n ", ret);
// return 0;
//}
//题目::::::计算1!+2!+3!+...+10!
/*int main()
{
int i = 1;
int n = 0;
int ret = 1;
int sum = 0;
for(n=1;n<=10;n++)
{
ret = 1;
for (i = 1; i <= n; i++)
{
ret = ret * i;
}
sum = sum + ret;
}
printf("%d \n", sum);
return 0;
}
*/
//优化
//int main()
//{
// int n = 0;
// int ret = 1;
// int sum = 0;
// for (n = 1; n <= 10; n++)
// {
// ret = ret * n;
// sum = sum + ret;
// }
// printf("%d \n", sum);
// return 0;
//}
/// 题:在一个有序数组中查找具体某个数字n
//int main()
//{
// int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
// int k = 7;
// int i = 0;
// int sz = sizeof(arr) / sizeof(arr[0]); //元素个数
// for (i = 0; i < sz; i++)
// {
// if (arr[i] == k)
// {
// printf("找到了,下标是:%d\n", i);
// break;
// }
// }
// if (i == sz)
// {
// printf("找不到\n");
// }
// return 0;
//} //在 有序数组 里这样比较复杂 没有利用有序
//二分法找数值 一次查找排除一半
//int main()
//{
// int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
// int k = 7;
// int left = 0;
// int sz = sizeof(arr) / sizeof(arr[0]);
// int right = sz - 1;
// while(left<=right)
// {
// int mid = (left + right) / 2;
// if(arr[mid]<k)
// {
// left = mid + 1;
// }
// else if (arr[mid] > k)
// {
// right = mid - 1;
// }
// else
// {
// printf("找到了,下标是:%d\n", mid);
// break;
// }
// }
// if (left>right)
// {
// printf("找不到\n");
// }
// return 0;
//}
///编写代码 演示多个字符从两侧移动 向中间汇聚
//welcome to bit!!!!
//w################!
//we##############!!
//wel############!!!
//......
//welcome to bit!!!!
//int main()
//{
// char buf[] = "abc";
// //实际长度:[a b c \0] 四个 //strlen本质求长度 sizeof本质求内存
// int right = strlen(buf) - 1;//int right = sizeof(buf)/sizeof(buf[0])-2
// //strlen求得是3 c下标是2要减一 sizeof求得是4(\0也算) 对应c下标要减二
// return 0;
//}
//int main()
//{
// char arr1[] = "welcome to bit!!!";
// char arr2[] = "#################";
//
// int left = 0;
// int right = strlen (arr1) - 1;//int right = sizeof(arr1)/sizeof(arr1[0])-2
// while (left<=right)
// {
// arr2[left] = arr1[left];
// arr2[right] = arr1[right];
// printf("%s\n", arr2);
// left++;
// right--;
// }
//
//
// return 0;
//}
/// 模拟用户登录 且只能登陆三次(只允许输入三次密码 密码正确则登录 三次错误退出程序)
//int main()
//{
// int i = 0;
// char password[20] = { 0 };
// //假设密码为abcdef字符串
// for (i = 0; i < 3; i++)
// {
// printf("请输入密码\n");
// scanf("%s", password);
// if (strcmp( password,"abcdef") == 0)//比较两个字符串是否相等 不能password == r,用一个库函数:strcum
// { //看返回值为0则相等
// printf("登陆成功\n");
// break;
// }
// else
// {
// printf("密码错误\n");
// }
//
// }
// if (i == 3)
// {
// printf("三次密码错误,退出程序\n");
// }
// return 0;
//}
/goto语句 多用于跳出二层或多层嵌套结构