0基礎學編程之猜數字遊戲,折半二分查找,模擬輸入密碼及大小寫互換

1.完成猜數字遊戲。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("*****************\n");
printf("*****************\n");
printf("***1.PLAY GAME***\n");
printf("***0.EXIT GAME***\n");
printf("*****************\n");
printf("*****************\n");
}
void game()
{
/*生成隨機數*/
int ret = 0;
int num = 0;
ret = rand()%100;
while(1)
{
printf("請猜數字:>>");
scanf("%d", &num);
if(num < ret)
{
printf("猜小了");
}
else if(num > ret)
{
printf("猜大了");
}
else 
{
printf("恭喜你,猜對了");
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");
}
}while(input);
return 0;
}

2.寫代碼可以在整型有序數組中查找想要的數字,找到了返回下標,找不到返回-1.(折半查找)

#include<stdio.h>
int main()
{
int n=0;
int arr[]={0,1,2,3,4,5,6,7,8};
int left = 0;
int sz = sizeof(arr)/sizeof(arr[0]);
int right = sz-1;
printf("請輸入要查找的數字:\n");
scanf("%d", &n);
while(left <= right)
{
int mid=left+(right-left)/2;
if(arr[mid] == n)
{
printf("找到了%d: ", mid);
   break;
}
else if(arr[mid] < n)
{
left = mid+1;
}
else 
{
right = mid-1;
}
}
if(left > right)
{
printf("-1");
}


}
3.編寫代碼模擬三次密碼輸入的場景。
最多能輸入三次密碼,密碼正確,提示“登錄成功”,密碼錯誤,可以重新輸入,最多輸入三次。三次均錯,則提示退出程序。
#include<stdio.h>
int main()
{
char password[20]={0};
int i=0;
for(i=0; i<3; i++)
{
printf("請輸入密碼:");
scanf("%s", password);
if(strcmp(password,"123456") == 0)
{
printf("登陸成功!\n");
break;
}
else
{
printf("密碼錯誤,請重新輸入\n");
}
}
if(i==3)
{
printf("三次輸入錯誤,退出程序!\n");
}
return 0;
}

4.編寫一個程序,可以一直接收鍵盤字符,如果是小寫字符就輸出對應的大寫字符,如果接收的是大寫字符,就輸出對應的小寫字符,如果是數字不輸出。 

#include<stdio.h>
#include<stdlib.h>
int main()
{
char a=0;
while(a!=EOF)
{
printf("請輸入一個字母\n");
fflush(stdin);
scanf("%c", &a);


if((a>='A')&&(a<='Z'))
{
a+=32;
   printf("%c\n", a);
}
else if((a>='a')&&(a<='z'))
{
a-=32;
   printf("%c\n", a);
}
else
{
printf("");
}
}
return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章