#include2. 计算1!+2!+3!+...+10!int main() { int i = 1; int n = 0; int ret = 1; scanf("%d", &n); for (i = 1; i <= n; i++) { ret = ret * i; } printf("%dn", ret); return 0; }
#include3. 二分(折半)查找法int main() { int i = 1; int n = 0; int ret = 1; int sum = 0; for (n = 1; n <= 10; n++) { ret = ret * n; sum = sum + ret; } printf("%dn", sum); return 0; }
//在一个1-10的有序数组中查找数字7 #include4. 演示多个字符从两端移动,向中间汇聚int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; int k = 7; int sz = sizeof(arr) / sizeof(arr[0]);//计算数组元素个数 int left = 0; int right = sz - 1; while (left <= right) { //int mid = (left + right) / 2;当数值太大可能出现溢出问题 int mid = left + (right - left) / 2;//不会出现溢出问题 if (arr[mid] < k) { left = mid + 1; } else if (arr[mid] > k) { right = mid - 1; } else { printf("找到了,下标是:%dn", mid); break; } } if (left > right) printf("找不到n"); return 0; }
#include#include //windows头文件 #include //standard library 标准库头文件 int main() { char arr1[] = "Welcome to JLU!!!!"; char arr2[] = "##################"; int left = 0; //int right = sizeof(arr1)/sizeof(arr1[0])-2;sizeof算 int right = strlen(arr1) - 1;//strlen不算 while (left <= right) { arr2[left] = arr1[left]; arr2[right] = arr1[right]; printf("%sn", arr2); //程序休眠1000ms Sleep(1000);//Sleep()是一个库函数,头文件是window.h //清空屏幕(clear screen) system("cls");//system()是一个库函数,执行系统命令,头文件是stdlib.h left++; right--; } printf("%sn", arr2); return 0; }
5. 最多只能输入三次密码运行结果:
W################!
↓(时间间隔1000ms)
We##############!!
↓(时间间隔1000ms)
Wel############!!!
↓(时间间隔1000ms)
Welc##########!!!!
↓(时间间隔1000ms)
Welco########U!!!!
↓(时间间隔1000ms)
Welcom######LU!!!!
↓(时间间隔1000ms)
Welcome####JLU!!!!
↓(时间间隔1000ms)
Welcome ## JLU!!!!
↓(时间间隔1000ms)
Welcome to JLU!!!!
↓(时间间隔1000ms)
Welcome to JLU!!!!
//最多只能输入三次密码,密码正确则提示登录成功,三次均输入错误,则退出程序。 //假设密码是字符串:abcdef。 #include6. 猜数字游戏#include int main() { int i = 0; char password[20] = { 0 }; for (i = 0; i < 3; i++) { printf("请输入密码:>"); scanf("%s", password); //比较两个字符串不能使用==,应该使用一个库函数strcmp(),头文件是string.h if (strcmp(password, "abcdef") == 0)//如果返回值是0,那么两个字符串相等 { printf("登陆成功n"); break; } else { printf("密码错误n"); } } if (3 == i) { printf("三次密码均输入错误,退出程序n"); } return 0; }
//游戏流程: //1.产生1-100的随机数 //2.猜数字 //猜大了 //猜小了 //直到猜对了,结束 //rand()函数、srand()函数和time()函数介绍: //rand()是一个库函数,可以产生0-32767的随机数,头文件是stdlib.h //rand()在产生随机数前,需要系统提供的生成伪随机数序列的种子,根据种子值产生随机数 //如果种子没有变化,每次调用rand()函数生成的伪随机数序列都是一样的 //srand(unsigned int seed)通过参数seed改变系统提供的种子值,头文件是stdlib.h //通常可以利用系统时间来改变系统的种子值,即srand((unsigned int)time(NULL)) //rand()放在循环内,srand()放在循环外 //time()函数返回当前时间的Unix时间戳,头文件是time.h //Unix时间戳是指从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数 #include#include #include void menu() { printf("*****************************n"); printf("******** 1. play ********n"); printf("******** 0. exit ********n"); printf("*****************************n"); } void game() { int guess = 0; //1. 生成1-100的随机数 int ret = rand()%100+1;//rand()%100表示生成0-99的随机数,再+1表示生成1-100的随机数 //2. 猜数字 while (1) { printf("请猜数字:>"); scanf("%d", &guess); if (guess < ret) { printf("猜小了n"); } else if (guess > ret) { printf("猜大了n"); } else { printf("恭喜你,猜对了n"); break; } } } int main() { int input = 0; srand((unsigned int)time(NULL)); do { menu(); printf("请选择:>"); scanf("%d", &input); switch (input) { case 1: game(); break; case 0: printf("退出游戏n"); break; default: printf("选择错误,重新选择!n"); break; } } while (input); return 0; }



