//在一个有序数组中查找具体的某个数字n.编写int binsearch
//(int x,int v[],int n);功能在:v[0]<=v[1]<=v[2]<=…<= v[n-1]
//的数组中查找x.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define N 4
int a[];
int x,n;
//建立一个顺序查找的函数
int search(int to_find, int a[]) {
//to_find为代查找数
for (n = 0; n < 4; n++) {
if (to_find == a[n]) {
return n;
}
}
return -1;
//若循环执行完依旧未找到,则返回-1
}
int main( ){
int a[] = { 1,0,2,4 };
printf("请输一个整数:\n");
scanf("%d", &x);
int results =search(x,a);
printf("results=:%d\n", results);
system("pause");
}
//编写代码实现,模拟用户登录情景,并且只能登录三次
//(只允许输入三次密码,如果密码正确则提示登录成功,
//如果三次均输入错误,则退出程序)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int i,key= 888888;
int word;
int main() {
printf("请输入密码:\n");
for (i = 0; i < 3; i++) {
scanf("%d", &word);
if (key == word) {
printf("密码正确登录成功\n");
}
else
printf("密码错误请重试!\n");
}
if (i == 3)
printf("账号已被锁定\n");
system("pause");
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define N 4
int a[];
int i,x,n,mid;
//建立一个折半查找的函数
int binsearch(int x, int v[], int n) {
int lift = 0;
int right = n - 1;
//[lift,right]为所查找区间
while(lift<=right) {
mid = (right + lift) / 2;
//计算中间元素下标
if (x < mid) {
right = mid-1;
//-1为了将mid去掉,减少比较次数
}
else if (x > mid) {
lift = mid + 1;
}
else {
return mid;
//已找到
}
}
return -1;
}
int main( ){
int a[] = { 0,1,2,4,5,8,446,15484,158458,589494,88888888 };
printf("请输一个整数:\n");
scanf("%d", &x);
int result =binsearch(x,a,n);
printf("results=:%d\n", result);
system("pause");
}
版权声明:本文为m0_46233999原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。