/*
菜单页面输入0退出游戏,输入1开始游戏
会随机一个0-100的数字供玩家猜
a. 猜小了会提示
b. 猜大了会提示
c. 猜中了会结束到菜单页面并提示猜了几次
*/#include<stdio.h>#include<time.h>// 打印菜单函数voidmenu(){printf("**********************\n");printf("***** 1 开始游戏 *****\n");printf("***** 0 结束游戏 *****\n");printf("**********************\n");}// 游戏函数voidgame(){// 生成一个0-100的随机数int rand_num =rand()%100+1;int num =0;// 玩家猜的数字int count =0;// 玩家猜的次数while(1){
count++;printf("请输入你选的数字:>");scanf("%d",&num);if(num > rand_num){printf("你猜的数字太大了!\n");}elseif(num < rand_num){printf("你猜的数字太小了!\n");}else{printf("恭喜你,猜中了!\n");printf("你一共猜了%d次\n\n", count);break;}}}intmain(){int input;do{// 打印菜单menu();// 输入选项printf("请选择:>");scanf("%d",&input);// 判断是玩游戏还是退出switch(input){case1:srand((unsignedint)time(NULL));// 设置起始是0-当前时间戳// 玩游戏game();break;case0:// 退出游戏printf("欢迎下次再来!");break;default:printf("输入有误,请重新输入!");break;}}while(input);return0;}
二分法
/*
快速寻找有序数组中的一个数字所对应的索引.
*/#include<stdio.h>intmain(){// 生成一个有序数组int arr[10]={1,2,3,4,5,6,7,8,9,10};int k =0;// 想要查找的数字printf("请输入你想找的数字:>");scanf("%d",&k);int left =0;int right =sizeof(arr)/sizeof(arr[0]);int mid =0;while(left <= right){
mid =(left + right)/2;// 重新取中间值if(k > arr[mid]){// 在右边
left = mid +1;}elseif(k < arr[mid]){// 在左边
right = mid -1;}else{printf("找到了,索引是%d\n", mid);break;}}if(left > right){printf("没有找到!");}return0;}
三个数字输出按顺序输出
#include<stdio.h>intmain(){// 输入三个数字int a, b, c;scanf("%d%d%d",&a,&b,&c);// 排序int tmp =0;if(a < b){// 把a和b互换位置
tmp = b;
b = a;
a = tmp;}if(a < c){// 把a和c互换位置
tmp = c;
c = a;
a = tmp;}if(b < c){// 把c和b互换位置
tmp = c;
c = b;
b = tmp;}// 打印排序好的三个数字printf("%d %d %d", a, b, c);return0;}
求最大公约数和最小公倍数
// 方法一#include<stdio.h>intmain(){int a, b;scanf("%d%d",&a,&b);int min = a < b ? a : b;while(1){if(a % min ==0&& b % min ==0){printf("最大公约数是: %d\n", min);break;}
min--;}return0;}// 方法二#include<stdio.h>intmain(){int a, b, t;scanf("%d%d",&a,&b);int m = a;int n = b;/*
m % n = t
m = n; n = t; m % n = t;
当t=0的时候,n就是最小公约数
*/while(t = m % n){
m = n;
n = t;}printf("最大公约数是: %d\n", n);// 最小公倍数 = a * b / 最大公约数printf("最小公倍数是: %d\n", a * b / n);return0;}