C语言远征之基础篇
c語言遠征第五天
1.寫代碼可以在整型有序數組中查找想要的數字, 找到了返回下標,找不到返回-1.(折半查找)
#include <stdio.h> #include <stdlib.h> #include <string.h>int Bin_Search(int arr[], int key,int* p) {int left = 0;int right = *p;int mid = 0;while (left <= right){mid = (left + right) >> 1;if (arr[mid] < key){left = mid + 1;}else if (arr[mid] > key){right = mid - 1;}else{return mid;}}if (left > right){return -1;} } int main() {int arr1[] = { 1,2,3,4,5,6,7,8,9 };int tmp = (sizeof(arr1)/sizeof(arr1[0]) - 1);int a = 0;a=Bin_Search(arr1,7,&tmp);printf("%d\n", a);system("pause");return 0; }2.編寫代碼模擬三次密碼輸入的場景。 最多能輸入三次密碼,密碼正確,提示“登錄成功”,密碼錯誤, 可以重新輸入,最多輸入三次。三次均錯,則提示退出程序。
char passward[] = "2754ska"; char key[]=""; int i = 0; printf("請輸入密碼:>"); scanf("%s", &key); for (;i<2;i++) { if (strcmp("2754ska", key) == 0) { break; } else { printf("請再次輸入密碼:>"); scanf("%s", &key); } } if (i < 2) { printf("登錄成功\n"); } else { printf("超出輸入上限\n"); }3.編寫一個程序,可以一直接收鍵盤字符, 如果是小寫字符就輸出對應的大寫字符, 如果接收的是大寫字符,就輸出對應的小寫字符, 如果是數字不輸出。
int ch; printf("請輸入一個字符:>"); while ((ch = getchar()) != EOF) {if ('a' <= ch && ch <= 'z'){printf("%c\n", ch - 32); }elseif ('A' <= ch && ch <= 'Z'){printf("%c\n", ch + 32);}else{if ('0' <= ch && ch <= '9');else;} }hold on!!!
總結
- 上一篇: Python 每日一题(猴子吃桃问题)
- 下一篇: 如何定位前后端Bug?