c语言编程题

从键盘输入6位仅由数字0~9组成的密码。用户每输入一个密码并按回车键后,程序给出判断:如果是数字,则原样输出该数字,并提示用户目前已经输入了几位密码,同时继续输入下一位密... 从键盘输入6位仅由数字0~9组成的密码。用户每输入一个密码并按回车键后,程序给出判断:如果是数字,则原样输出该数字,并提示用户目前已经输入了几位密码,同时继续输入下一位密码;否则,程序提示"error",并让用户继续输入下一位密码。直到用户输入的密码全部是数字为止。
程序的运行结果示例:
Input your password:
1↙
1, you have enter 1-bits number
6↙
6, you have enter 2-bits number
a↙
error
d↙
error
4↙
4, you have enter 3-bits number
6↙
6, you have enter 4-bits number
8↙
8, you have enter 5-bits number
2↙
2, you have enter 6-bits number

输入提示信息:"Input your password:\n"
输入格式: "%c"
输出格式:
如果输入的是数字,输出格式为:"%c, you have enter %d-bits number\n"
如果输入的不是数字,输出提示信息:"error\n"
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
展开
 我来答
金色潜鸟
2017-11-15 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5525万
展开全部
#include <stdio.h>

int main(){
char s[80];
int i,L,flag,n=1;
printf("enter passwd with 6 digits. or exit by Ctrl-C\n");
while(1){
flag=1;
gets(s); L=strlen(s);
for (i=0;i<L;i++) if (s[i]< '0' || s[i] > '9') flag=0;
if (flag==1) {printf("PassWord-%d is %s Length=%d\n",n,s,L); n++;}
else printf("error\n");
}
return 0;
}

程序没有检查 输入口令长度 是否超过6个,若需要,你可以 用 L 判断,L>6 就是超过6,L==0 就是空的口令。
按 Ctrl+C 退出运行。
好名字都被取了
2019-09-29 · TA获得超过422个赞
知道答主
回答量:101
采纳率:90%
帮助的人:5.6万
展开全部

首先分析问题:重复输出同一类语句肯定要用循环,有关判断肯定要用分支。所以解决这个问题就是在一个循环(用于重复读取数据和输出)里面套一个分支语句(判断密码是数字还是字母)。具体代码:

#include <stdio.h>
#include<stdlib.h>
#include<math.h>

 main()

char c;
int f=0;
printf("Input your password:\n");
while(f<6){
scanf(" %c",&c);//重复输入这种char类型的数据一定要在前面加个空格,否则会读取上次残留的数据
if(c>='0'&&c<='9'){
f++;
printf("%c, you have enter %d-bits number\n",c,f);
}
else
printf("error\n");
}
system("pause");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式