c语言程序……哪里出错了啊

 我来答
驿路惊鸿
2013-10-22
知道答主
回答量:25
采纳率:0%
帮助的人:8万
展开全部
楼主,if(input=correct)是错误的。数据类型不一样不能赋值
追问
那要怎么办TT我是初学不太懂额。就是模拟密码检测,密码是123456,显示到屏幕上是星号,输对或输错三次结束
追答

#include<stdio.h>

#include<conio.h>

int main()

{

  int  i, j;

  char a,cor;

  for(i=1;i<=3;i++)

  {

    for(j='1';j<='6';j++)

    {a=getch();

     printf("*");

     cor=j;

     }

     if(a==cor)

     {printf("\njyou are welcome\n");

       break;

       }

     else printf ("\nyour key is wrong ,please reinpute agin.\n");

 }

}

cdyzxy
2013-10-23 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3783万
展开全部
这是全数字型密码检测,输入时最后回车结束
#include<stdio.h>
void main()
{ char input;
int correct=123456,password,s,n=0;

InputAgain:
password=0; s=1;
while ( 1 )
{ input=getch(); if ( input==13 ) break; else printf("*");
if ( input>='0' && input<='9' ) password=password*10+input-'0';
else s=0;
}
if ( correct==password && s ) printf("\nWelcom!\n");
else { printf("\nWrong Password!\n"); n++; if ( n<3 ) goto InputAgain; } //允许两次错误
printf("The end of the program.\n");
}
更多追问追答
追问
password=password*10 input—'0'         ......password
追答
比如你输入了一个'1',password=pasword*10+input-'0'=0*10+‘1’-‘0’=0+1=1
接着你输入了一个'2',password=pasword*10+input-'0'=1*10+‘2’-‘0’=10+2=12
接着你输入了一个'3',password=pasword*10+input-'0'=12*10+‘3’-‘0’=120+3=123
...
直到你输入个回车,假如你前面输入123456就会得到passwrod=123456
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
用QQ名居然违规
2013-10-22 · TA获得超过1110个赞
知道小有建树答主
回答量:1057
采纳率:50%
帮助的人:425万
展开全部
字符和数字不存在对比性。
i j是int型 1就是1
接收的是asc码 '1'是49?不记得了

改进方法:
这样写 for(j='1';j<='6';j++)
或者比较时的input写成input-'0'
更多追问追答
追问
那要怎么办TT我是初学不太懂额。就是模拟密码检测,密码是123456,显示到屏幕上是星号,输对或输错三次结束
追答

.

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
java紧挨va
2013-10-22 · TA获得超过880个赞
知道小有建树答主
回答量:690
采纳率:50%
帮助的人:335万
展开全部
图片太高清了。。。看着眼疼

报什么错??
更多追问追答
追问

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式