69,371
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<string.h>
#include<stdio.h>
main()
{
int i,j,x;
char p[20],ch;
for(i=0;i<3;i++)
{
j=0;
srand(time(0));
x=rand()%10000;
printf("验证码:%d\n",x);
while(j<20&&(ch=getch())!='\r')
{
p[j++]=ch;
putchar('*');
}
p[j]='\0';
if(strcmp(p,"x")==0)
{
printf("\n进入万年历系统\n");
break;
}
else
printf("重新输入");
}
if(i>=3)
{
printf("输入次数过多,退出系统");
exit(0);
}
}
/*
程序实现了:1)输入密码的时候显示“*”
2)将getch()返回的ASCII码转换成整数
3)用一个整数个十百千的数字组成一个整型数组
4)输入一个整数得到它的位数.
*/
#include<iostream>
#include<time.h>
#include<cmath>
#include<conio.h>
using namespace std;
const int max_input=3;//最大输入次数..
int main()
{
int i=0;
int p[10];
int x_[10];
for(int i=1;i<=max_input;i++)
{
srand((unsigned)time(NULL));
int x=rand()%10000;
cout<<"验证码:"<<x<<endl;
//从终端输入验证码..
int j=0;
char ch=_getch();
while(1)
{
if(ch==13)//windows平台下ENTER键会产生两个转义字符 \r\n,因此getch返回13(\r)..
break;
p[j++]=ch-'0';//得到的是输入字符的ascll值,转化成相应的整数..
putchar('*');
ch=_getch();
}
//把int类型的x转化成整型数组..
int n=(int)(log10(double(x))+1)-1;//log10(n)函数返回n以10为底的对数——得到x得到位数..
for(int i=n;i>=0;i--)
{
x_[i]=x%10;
x=x/10;
}
//比较是否输入正确..
int count=0;
for(int j=0;j<=n;j++)
if(p[j]==x_[j])
count+=1;
if(count==(n+1))
{
cout<<"\n进入万年历系统"<<endl;
break;
}
else
cout<<"重新输入"<<endl;
}
if(i>max_input)
cout<<"输入次数过多,退出系统"<<endl;
_getch();
return 0;
}
异常蛋疼,,继续找问题../*
程序实现了:1)输入密码的时候显示“*”
2)将getch()返回的ASCII码转换成整数
3)用一个整数个十百千的数字组成一个整型数组
*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
int main()
{
int i,j,x,m,n,count=0;
char ch;
int p[10];
int x_[10];
for(i=0;i<3;i++)
{
srand((unsigned)time(NULL));
x=rand()%10000;
printf("验证码:%d\n",x);
//从终端输入验证码..
j=0;
ch=getch();
while(1)
{
if(ch==13)//windows平台下ENTER键会产生两个转义字符 \r\n,因此getch返回13(\r)..
break;
p[j++]=ch-'0';//得到的是输入字符的ascll值,转化成相应的整数..
putchar('*');
ch=getch();
}
//把int类型的x转化成整型数组..
n=0;
if(x/1000)
{
x_[n]=x/1000;
x=x%1000;
n++;
}
if(x/100)
{
x_[n]=x/100;
x=x%100;
n++;
}
if(x/10)
{
x_[n]=x/10;
x=x%10;
n++;
}
x_[n]=x;
//比较是否输入正确..
count=0;
for(m=0;m<=n;m++)
if(p[m]==x_[m])
count+=1;
if(count==(n+1))
{
printf("\n进入万年历系统\n");
break;
}
else
printf("重新输入");
}
if(i>=3)
printf("输入次数过多,退出系统");
return 0;
}
#include<stdio.h>
#include<string.h>
#include<time.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
int i,j,x;
char p[20],ch, temp[20];//here
for(i=0;i<3;i++)
{
j=0;
srand(time(0));
x=rand()%10000;
printf("验证码:%d\n",x);
while(j<20&&(ch=getch())!='\r')
{
p[j++]=ch;
putchar('*');
}
p[j]='\0';
itoa(x,temp,10);//<---------here
if(strcmp(p,temp)==0)
{
printf("\n进入万年历系统\n");
break;
}
else
printf("重新输入");
}
if(i>=3)
{
printf("输入次数过多,退出系统");
exit(0);
}
}