c语言口令程序,谁能帮我修改,限制输入只能是6位数字?

#include <stdio.h>

void main()
{
int i = 1,n,a;
printf("请输入密码:");
scanf("%d",&a);

while ( (i < 3)&&a!=123456)
{
if (a!=123456)

printf("密码错误!你还有2次机会,请重新输入:");

i++;
scanf("%d",&a);

if (a!=123456)

printf("密码错误!你还有1次机会,请重新输入:");

i++;
scanf("%d",&a);

if (a!=123456)

printf("想盗号?你太年轻了!!!\n");

}
if (a==123456)

printf("欢迎光临\n");
}

第1个回答  2016-05-13
#include <stdio.h>
void main() 

long n=0;//待存放录入密码
long d=999999;//预设密码
//录入数据不为六位数,则一直要求录入
while (1)//负责验证录入密码的"外循环"

while (1)//负责验证录入数据位数的"录入循环"

printf("请输入密码:");
scanf("%ld",&n);
//录入数据不为六位数时,退出录入循环
if (n>99999||n<=999999) 
break;
}
if (n==d)
{//录入数据与密码相同时,提示并退出
printf("欢迎光临\n");
return 0;
}
else//否则,录入数据与密码不同时,提示并要求
printf("密码错误!请重新输入:");
}
}
第2个回答  2015-11-16
#include <stdio.h>
void main()
{
int i = 1,flag=0,a;
printf("请输入密码:");
scanf("%d",&a);
while ( i <=3)
{
if (a==123456)
{
flag=1;
break;
}
if (a!=123456)
{
printf("密码错误!你还有2次机会,请重新输入:");
i++;
scanf("%d",&a);
}
if (a!=123456)
{
printf("密码错误!你还有1次机会,请重新输入:");
i++;
scanf("%d",&a);
}
if (a!=123456)
{
printf("想盗号?你太年轻了!!!\n");
break;
}
}
if(flag==1)
printf("欢迎光临\n");
}追问

我是想在输入的时候控制输入只能是6位。不能多,也不能少。。。。。。。。

追答

不知道你想干什么,多于6位要怎样?少于6位要怎样?

本回答被网友采纳
第3个回答  2015-11-16
在你输入a的值以后加入一个判断就可以了,六位数无非是从100000到999999,条件控制,
if(a<100000 || a>999999){
printf("请重新输入一六位数\n");

scanf("%d",&a);

}追问

我是想在输入的时候控制输入只能是6位。不能多,也不能少。。。。。。。

追答

这个只能判断输入的是不是六位数,不能控制输入只能是6位吧,比如说你告诉他这是一个6位数的密码,他就是输五位,我们没办法啊,所以我们只能判断他输的是不是六位,而不能控制他必须输6位

第4个回答  2015-11-16
密码可以考虑用字符串。追问

字符串也试过了。。。。。不懂怎么控制输入只能是6位,不能多,也不能少。

第5个回答  2015-11-16
你的代码本身就有错误啊追问

你运行看看,再说。

追答#include <stdio.h>

void main() 

int i = 1,n,a; 
printf("请输入密码:");
scanf("%d",&a);
while(a<=99999||a>999999)
{
printf("你输错了六位数哦");
scanf("%d",&a);

}

while ( (i < 3)&&a!=123456)

if (a!=123456) 

printf("密码错误!你还有2次机会,请重新输入:");

i++;
scanf("%d",&a);

if (a!=123456) 

printf("密码错误!你还有1次机会,请重新输入:");

i++;
scanf("%d",&a);

if (a!=123456) 

printf("想盗号?你太年轻了!!!\n");

}
if (a==123456) 

printf("欢迎光临\n");
}

追问

我是想在输入的时候控制输入只能是6位。不能多,也不能少。。。。。。。。

相似回答