C语言输密码程序 奇怪了!!

来源:百度知道 编辑:UC知道 时间:2024/06/15 15:12:17
#include <stdio.h>
#include <conio.h>
#define N 100
void main()
{
int x;
printf("please input the password:\n");
scanf("%d",&x);
while(x!=N)
{
printf("you r wrong,please try again:\n");
scanf("%d",&x);
}
printf("right codes,passed");
}
1.输入正确的密码100 也提示错误
2.输入带字母的错误密码会造成死循环 为什么??而输入错误的纯数字密码正常提示
100 好象可以 但是0987就不行 郁闷了 而且100可以的时候 不显示最后一行的正确提示
就是把密码改为0987 但输入0987还是提示密码错误
密码是100时 输入100就正确

1.输入100在VC6.0下没问题,你再检查一下
2.输入字母的情况下,因为你的X定义为整形,所以当它获取一串字母时,它会放这些字母继续留在输入缓存中,结束本次的输入,而你在这里用了while循环,所以每次读到的都是你第一次输入的放在缓存中的字母,所以出现了死循环。
3.对于0987,在我的VC6.0下,它会自动将其转为987赋给X,不知你用的TC如何。

楼主的"0987就不行"是什么意思??"不显示最后一行的正确"是不是一闪而过??

编译没问题!不超过-32768--------32767都没问题
至于字母,x好像是int类型的吧!

int x 这个赋值已经是整形,所以会是死循环。
我也初学,找了半天也不知道这个高科技的赋值怎么弄。
估计用构造类型的数据类型自己构造。还没学···
输入数字都没问题。

楼上说的对,0987什么意思.我也想知道