uchar pppw[8]={1,2,3,4,5,6,7,8} //这里数字是数值,其值为0x01,0x02.......
#include<stdio.h>#include<stdlib.h>
//给我300财富
void login(char *puser,char *ppw)
{
int ok=0,i,len=strlen(ppw)
if(!strpbrk(ppw,puser) &&strpbrk(ppw,"0123456789") &&strlen(ppw)>=8)
{
for(i=0i<leni++)
{
if(!isalnum(*(ppw+i)))
{
ok=1
break
}
}
if(ok) //1已满足长度大于等于8、不包含用户名中的任意字符、至少包含一个数字、至少包含一个非数字非字母字符
{
ok=0
for(i=0i<leni++)
{
if(*(ppw+i)>='a' &&*(ppw+i)<='z')
{
ok=1
break
}
}
if(ok) //已满足1和至少包含一个小写字母
{
ok=0
for(i=0i<leni++)
{
if(*(ppw+i)>='A' &&*(ppw+i)<='Z')
{
ok=1
break
}
}
}
}
}
if(ok)
{
printf("注册成功,欢迎登录!\n")
}
else
{
printf("密码不合要求,注册不成功!\n")
}
}
void find(int a[],int num,int len)
{
int *top,*bottom,*mid
top=a
bottom=&a[len-1]
mid=&a[5]
while(top<=bottom)
{
if(num<*mid)
{
bottom=mid-1
}
else if(num>*mid)
{
top=mid+1
}
else
{
break
}
mid=top+(bottom-top)/2
}
if(top<=bottom)
{
printf("找到了,%d在数组的第%d个位置。\n",num,(mid-a+1))
}
else
{
printf("%d在数组中不存在!\n",num)
}
}
int main()
{
char user[512],pw[512]
int i,num,a[10]={1,3,5,7,8,9,12,13,15,17}
printf("请输入用户名和密码(每行一个):\n")
gets(user)
gets(pw)
login(user,pw)
printf("数组的各元素是:\n")
for(i=0i<10i++)
{
printf("%d,",a[i])
}
printf("\n")
do
{
printf("请输入要用折半法查找的整数(输入-1退出循环):")
scanf("%d",&num)
if(-1!=num)
{
find(a,num,10)
}
}while(-1!=num)
system("PAUSE")
return EXIT_SUCCESS
}