1.完成猜数字游戏。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void menu()
{printf("***************\n");printf("****1.play ****\n");printf("****0.exit ****\n");printf("***************\n");
}
void game()
{int ret = rand()%100+1;int num = 0;while(1){printf("请你猜>:");scanf("%d",&num);if(num == ret){printf("恭喜你猜对了!\n");break;}else if(num > ret){printf("你猜大了,请重新猜!\n");}else {printf("你猜小了,请重新猜!\n");}}
}
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("你输入错了");break;}} while(input);return 0;
}
2.写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int Binary_search(int arr[],int x, int sz)
{int left = 0;int right =sz -1;int mid = 0;while(left <= right){mid = left + (right-left)/2;if(arr[mid] < x)left = mid +1;else if(arr[mid] > x)right = mid-1;elsereturn mid;}return -1;
}
int main()
{//在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1int arr[] = {1,2,3,4,5,6,7,8,9,10};int tmp = 0;int num = 0;int sz =sizeof(arr)/sizeof(arr[0]);printf("请输入一到十你要查找的数>:");scanf("%d",&num);tmp = Binary_search(arr,num,sz);if(-1 == tmp)printf("没找到");elseprintf("找到了在第%d个位置",tmp);return 0;
}
3.编写代码模拟三次密码输入的场景。
最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main()
{int i =0;char arr1[20] = {'1','2','3','4','5','6'};char arr2[20] = {0};for(i=0; i<=2; i++){printf("请输入密码>:");scanf("%s",arr2);if(0 == strcmp(arr2,arr1))break;elseprintf("输入错误,重新输入");}if(i<3)printf("登陆成功");elseprintf("登录失败");return 0;
}
4.编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
#include <stdio.h>
int main()
{int ch = 0;printf("请输入字符>:");while((ch = getchar()) != EOF){if(ch >= 'a' && ch <= 'z'){putchar(ch-32); }else if(ch >= 'A' && ch <= 'Z'){putchar(ch+32); }else if(ch >= '0' && ch <= '9'){;}printf("\n"); }return 0;
}