验证密码:最多可以输入三次,超过三次退出
求两个数的最大公因数,辗转相除法
打印1000 -2000之间的闰年
打印1-100的素数
100以内包含9的数字
计算1+ 1/2+1/3····1/100
计算1- 1/2+1/3···-1/100
求十个数字的最大值;
打印乘法口诀表
二分查找
猜数字游戏: 生成随机数,猜测数字是多少
验证密码:最多可以输入三次,超过三次退出
int main() {char arr1[] = "zhangda";char arr2[20] = {0};int tim = 1;char ch;printf("欢迎登录《棋》!!!\n");printf("请输入密码\n>>>");while (tim < 4) {int i = 0;printf("请输入密码(%d/3):", tim);while ((ch = getchar()) != '\n') {arr2[i] = ch;i++;}if (strcmp(arr1, arr2) == 0) {printf("登录成功!");break;}elseprintf("登录失败!\n");tim++;}if (tim > 3) {printf("次数过多,请核对密码后再次登录!\n");}Sleep(1);//system("cls");return 0;
}
求两个数的最大公因数,辗转相除法
int main() {//最大公因数,辗转相除法//原理:想要求a和b的公因数(a>b),a/b = c, //如果c != 0 ,那么a = b, b = c,a/b = c,直到c = 0,那么b就是a的最大公因数。int a, b = 0;int c = 1;printf("求最大公因数\n请输入两个数用空格隔开\n>>>");scanf("%d %d", &a, &b);while (c != 0) {if (a < b) {int tmp = a;a = b;b = tmp;}c = a % b;if (c) {a = b;b = c;}else {printf("最大公因数是%d", b);}}return 0;
}
打印1000 -2000之间的闰年
int main (){//打印1000 -2000之间的闰年int i ;int sum = 0;for(i = 1000; i <= 2000;i ++){if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {printf("%d\t", i);sum++;}}printf("\n共有%d个闰年!\n", sum);return 0;
}
4. 打印1-100的素数
int main() {//打印1-100的素数int i, j = 0;for (i = 1; i <= 100; i++) {for (j = 2; j < i; j++){if (i % j == 0) {//是素数break;}}if (j == i) {printf("-----%d\n", i);}}
}
5. 100以内包含9的数字
int main() {//100以内包含9的数字for (int i = 0; i < 100; i++) {int j = i;while (j) {if ((j % 10) == 9) {printf("%d\n", i);break;}j = j / 10;}}return 0;
}
6. 计算1+ 1/2+1/3····1/100
int main() {//计算1+ 1/2+1/3····1/100int i = 1;double sum = 0.0;while (i < 10000) {sum = sum + 1.0 / i;i = i * 2;}printf("%lf", sum);return 0;
}
7. 计算1- 1/2+1/3···-1/100
int main() {//计算1- 1/2+1/3···-1/100int i = 1;int flag = -1;double sum = 0.0;while (i < 100) {if (i % 2) {flag = -flag;}sum = sum + flag * (1.0) / i;i++;}printf("%lf", sum);return 0;
}
8. 求十个数字的最大值;
int main() {//求十个数字的最大值;int arr[] = { 1, 435 , 45, 4, 5, 34, 3, 23, 423, 4 };int max = arr[0];int i = 0;while (i < sizeof(arr) / sizeof(arr[0])) {if (arr[i] > max) {max = arr[i];}i++;}printf("最大值为:%d\n", max);return 0;
}
9. 打印乘法口诀表
int main() {//乘法口诀表for (int i = 1; i < 10; i++) {for (int j = 1; j <= i; j++) {printf("%d * %d = %3d ", i, j, (i * j));}printf("\n");}return 0;
}
10.二分查找
int main() {//二分查找int arr[] = { 1,23,33,43,45,65,78,98,123,345 };int goal = 0;int left = 0;int right = sizeof(arr) / sizeof(arr[0]) - 1;while (left < right) {int mid = (left + right) / 2;if (arr[mid] == goal) {printf("%d在数组的第%d个位置\n", goal, mid + 1);break;}else if (arr[mid] < goal) {left = mid + 1;}else {right = mid - 1;}}if (right <= left) {printf("对不起!数组中没有这个元素!");}return 0;
}
11. 猜数字游戏: 生成随机数,猜测数字是多少
void menu() {printf("####################################################################\n");printf("## 欢迎来到猜数字游戏 ##\n");printf("####################################################################\n");
}void page1() {printf("\n####################################################################\n");printf("请输入下面编号进行游戏或者退出:\n");printf("1、猜数字\n");printf("2、退出\n");printf(">>>");
}void game() {printf("####################################################################\n");printf("## 开始游戏 ##\n");int key = 67;int answer = 0;printf("电脑:我有一个在100以内的正整数,你能猜到是多少吗?\n>>>");while (1) {scanf("%d", &answer);if (answer < key) {printf("电脑:猜小了!\n");}else if (answer > key) {printf("电脑:猜大了!\n");}else {printf("电脑:恭喜你,猜对了!\n");break;}}page1();
}void mistake() {printf("输入有误!请重新输入\n>>>");
}int main() {//猜数字游戏: 生成随机数,猜测数字是多少int answer = 0;menu();page1();while(1){scanf("%d", &answer);if (answer == 1) {game();}else if (answer == 2) {printf("退出游戏!\n");return 0;}else {mistake();}}return 0;
}