1,计算N的阶乘(不考虑溢出)
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int n = 0; scanf("%d", &n); int i = 0; int ret = 1; for (i = 1; i <= n; i++) { ret = ret * i; } printf("%d\n", ret); return 0; }
2,计算1!+2!+3!+·······+n!
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int i = 0; int n = 0; int m = 0; scanf("%d", &n); int ret = 1; for(i=1; i<=n; i++) { ret = ret * i; m = m + ret; } printf("%d\n",m); return 0; }
3,在一个有序数组中查找具体的某个数字 (二分法)
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int arr[] = { 1,2,3,4,5,6,7,8,9,10 };//升序 int k = 7; int left = 0; int right = sizeof(arr) / sizeof(arr[0]); int flag = 0; while (left <= right) { int mid = (left + right) / 2; if (arr[mid] == k) { printf("找到了,下标是%d\n",mid); flag = 1; break; } else if (arr[mid] < k) { left = mid + 1; } else { right = mid - 1; } } if (flag == 0) { printf("没找到\n"); } return 0; }
4.编写代码 演示多个字符从两端移动 向中间汇聚
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<string.h> int main() { char arr1[] = "welcome to bit!!!!!"; char arr2[] = "###################"; int left = 0; int right = strlen(arr1) - 1; while (left <= right) { arr2[left] = arr1[left]; arr2[right] = arr1[right]; printf("%s\n", arr2); left++; right--; } return 0; }
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<string.h> #include<windows.h> int main() { char arr1[] = "welcome to bit!!!!!"; char arr2[] = "###################"; int left = 0; int right = strlen(arr1) - 1; while (left <= right) { arr2[left] = arr1[left]; arr2[right] = arr1[right]; printf("%s\n", arr2); Sleep(1000);//单位是毫秒 left++; right--; } return 0; }
system函数可以执行系统命令,cls是清理屏幕
5,编写代码,模拟用户登录情景,并且只能登录三次(只允许输入三次密码,如果密码正确则提示登陆成功,如果三次均输入错误,则退出程序)
strcmp库函数
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<string.h> #include<windows.h> //密码是123456 int main() { int i = 0; char password[20] = { 0 }; for (i = 0; i < 3; i++) { printf("请输入密码:>"); scanf("%s", password); //判断密码是否正确 //两个字符比较相等是不能用==的,应该使用strcmp库函数 //strcmp返回0表示2个字符串相等 //strcmp返回>0的数字,表示第一个字符串大于第二个字符串 //strcmp返回<0的数字,表示第一个字符串小于第二个字符串 if (strcmp(password, "123456") == 0) { printf("登陆成功\n"); break; } else { printf("密码错误\n"); } } if (i == 3) { printf("退出程序\n"); } return 0; }