//猜数字游戏voideumn(){printf("==============\n");printf("====1.PLAY====\n");printf("===0.EXIT======\n");printf("==============\n");}voidgame(){int num =0;int tem =rand()%100+1;while(1){printf("输入你猜的数字;");scanf("%d",&num);if(num > tem){printf("大了\n");}elseif(num < tem){printf("小了\n");}else{printf("恭喜你找到了");break;}}}intmain(){int choice =0;srand((unsignedint)time(NULL));//这里要强转,每次随机数srand只用设置一次,后面直接用rand()调用就行了eumn();do{printf("请输入您是否要玩游戏:");scanf("%d",&choice);if(choice ==1){game();}elseif(choice ==0){printf("下次再见");break;}else{printf("您输入的选择有误");}}while(1);system("pause");return0;}
二分查找
//二分查找,找到了返回该数字的下标intBinarySearch(int arr[],int left,int right,int key){while(left <= right){int mid =(left + right)/2;if(key > arr[mid]){
left = mid +1;}elseif(key < arr[mid]){
right = mid -1;}else{return mid;}}return-1;}intmain(){int arr[]={1,2,3,4,5,6,7,8,9};int left =0;int right =sizeof(arr)/sizeof(arr[0])-1;int key =0;printf("请输入要查找的数;");scanf("%d",&key);int result =BinarySearch(arr, left, right, key);if(result >=0){printf("找到了,它的下标是%d", result);}else{printf("没找到");}system("pause");return0;}
模拟用户登录
//编写代码模拟三次密码输入的场景最多能输入三次密码,密码正确,提示“登录成功”, 密码错误,//可以重新输入,最多输入三次。三次均错,则提示退出程序。intmain(){char passward[20]={};//用来存密码字符串;int i =0;for(i =0; i <3; i++){printf("请输入密码;");scanf("%s",&passward);if(strcmp(passward,"12345")==0)//strcmp用来比较字符串,但是为什么传参的时候要传const char*?{printf("密码正确\n");break;}else{printf("密码错误,您只有%d次机会\n",2-i);}}system("pause");return0;}
封装用户登录,但出了问题
intlogin(char* passward,char* key){int i =0;for(i =0; i <3; i++){scanf("%s",&passward);//是不是因为这里传的是首元素地址,存不下?if(strcmp(passward, key)==0){return1;}}return-1;}intmain(){char passward[10]={};//char key = "abc"//是因为abc是一个常量字符串,所以不能初始化char类型的变量吗?int result =login(passward,"abc");//数组名是数组的首地址if(result ==1){printf("yes");}else{printf("error");}system("pause");return0;}
猜数字游戏//猜数字游戏void eumn(){ printf("==============\n"); printf("====1.PLAY====\n"); printf("===0.EXIT======\n"); printf("==============\n");}void game(){ int num = 0; int tem = rand() % 100 +...