出一道关于密码的题C语言的题

雷速体育发帖软件开发QQ乐学 会学 多求 善思千里之行 始于足下
欢迎加入我们,一同切磋技术 &
用户名: &&&
密 码: &
共有 1133 人关注过本帖
标题:一道C语言题。希望各位高手赐教!!谢谢!
等 级:新手上路
帖 子:10
结帖率:66.67%
&&已结贴√
&&问题点数:20&&回复次数:12&&&
一道C语言题。希望各位高手赐教!!谢谢!
char *s=&0123214&;int v1=0,v2=0,v3=0;while(*s){&&switch(*s)&&& {&&&default:v3++;&&&&&&&&case '1':v1++;&&&&&&&&case '2':v2++;&&& }&&& s++;}printf(&%d,%d,%d\n&,v1,v2,v3);A)5,2,3&&&&&&&&B)2,2,3C)5,5,3&&&&&&&&D)1,0,1这题怎么解。我的理解是*s取的是&0123214&的首个字符&0&,按这样的理解直接跳出while循环,就没答案了。我不大明白。希望各位高手大侠帮忙解答一下!!谢谢!
搜索更多相关主题的帖子:
等 级:论坛游民
帖 子:34
专家分:13
char *s=&0123214&;&&*s取的是&0123214&的首个字符&0&, 这样理解貌似是错的了......
等 级:小飞侠
帖 子:783
专家分:2806
&&得分:15&
你的理解*s取的是&0123214&的首个字符&0&,应该没有错误。但是我是这么认为的:
你定义的*s中存放的是char型的数据,所以你的*s的首元素是字符‘0’;而while()的括号里判断循环条件的时候是根据其ASCII代码判断的。‘0’的ASCII码值是048,为非零,所以为真,所以循环执行。一直到*s对应的元素为‘\0’,即字符串取完时,while()括号里为真正的零,循环结束。
个人观点奥。
来 自:江苏南京
等 级:蝙蝠侠
帖 子:187
专家分:802
三楼完全正确
等 级:论坛游侠
帖 子:92
专家分:141
来 自:山东滨州
等 级:职业侠客
帖 子:334
专家分:370
三楼正确。这道题目的意思就是统计字符串s中1,2和其他字符的个数,所以答案应该为B
你是雪,我是尘埃,相遇是意外;你坠落,在我胸怀,流进我血脉。
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
在switch语句中的选择中要注意对应项case的位置,如果是在所有的case项后面加上break并且可以找的到的情况下,对于switch里面的所有语句不管是case还是default的语序随意的都可以,即没有先后。但是,当
&&&&&& switch(3)
&&&&&&&&{&&&
&&&&&&&&default:v3++;&&
&&&&&&&&case 2:v2++;&&&&&&
&&&&&&&&case 1:v1++;&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&}得到的结果和
&&& switch(2)
&&&&&&&&case 2:v2++;&&
&&&&&&&&default:v3++;&&&&&&
&&&&&&&&case 1:v1++;
&&& 的结果是一样的。
所以在有的时候讲对于switch的{&&}中的语句的顺序是任意的,但是这是有隐含条件的。
等 级:青峰侠
帖 子:598
专家分:1512
以下是引用m456m654在 22:10的发言:
你的理解*s取的是&0123214&的首个字符&0&,应该没有错误。但是我是这么认为的:
你定义的*s中存放的是char型的数据,所以你的*s的首元素是字符‘0’;而while()的括号里判断循环条件的时候是根据其ASCII代码判断的。 ...正解
你能学会你想学会的任何东西,这不是你能不能学会的问题,而是你想不想学的问题
等 级:新手上路
帖 子:10
回复 3楼 m456m654
一言惊醒梦中人!!终于弄明白了~呵呵!
等 级:新手上路
帖 子:10
回复 7楼 寒风中的细雨
谢谢提醒!!很受用!!
版权所有,并保留所有权利。
Powered by , Processed in 0.070228 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved一道关于C语言的题目_百度知道
一道关于C语言的题目
做出来为什么n=6输出的是这个
我有更好的答案
你是不是&输出入的是a[0]&,&a[1],&&a[2],&&a[3]啊?你这个代码的本意,应该是删除a中与输入相同的数据吧。 &不过一看代码,应该是有问题的。改成if(x&==&a[i]){&&&&n--;&&&&//标记a数组中有效数据个数&&&&k=1;&&&&//标记a数组中是否有与输入值x相同的数&&&&&&&&//以覆盖方式剔除匹配到的数据&&&&for(j=i;&j&n;&++j)&&&&&&&&a[j]&=&a[j+1];&&//从匹配的位置开始,从后往前覆盖&}你的覆盖的起点有问题的,应该从匹配的位置开始,
采纳率:47%
来自团队:
你的x输入的是什么?
为您推荐:
其他类似问题
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。几道C语言的题_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
几道C语言的题
&&题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
1.程序分析:学会分解出每一位数。
题目2:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩1页未读,
定制HR最喜欢的简历
你可能喜欢15:38 提问
一道关于C语言的题目求帮助!
1. 电脑随机产生之间的数字(包括);
提示:用rand函数,该函数在stdlib.h库中,并保证多次运行产生不同的随机数
2. 玩家每轮有七次猜数的机会,如果七次都没有猜到,则失败,判为0分;
3. 玩家每轮可以请求帮助,提问关于产生数字的信息,扣分细则如下;
4. 游戏以百分制形式,初始分为100,最后得分最多为赢家。
? 帮助内容及扣分细则:
. 判断你所猜的数中各位数字对应位置正误情况,以R表正确,E表错误。若随机数是2537,而猜的数是1234,则输出EERE,代表猜的数第3位正确,第1,2,4位错误。
——扣当前分数的1/10
. 判断你所猜的数中正确数字是什么。若随机数是2537,而猜的数是1234,则输出有两个数字正确,它们是2,3。 ——扣当前分数的1/10
按赞数排序
我用java写了一个希望楼主可以参考一下 而写分数的计算可能有点偏差,楼主可以改一改分数的计算方法 互勉
public static void main(String[] args) {
int random_number=(int)(Math.random()*()+1000);//定义一个随机数
String data=String.valueOf(random_number); //将随机数转化为 String类型 是一个字符串类型
int number=7;//定义一个游戏的次数
int score=100;//游戏的初始分数为100
while(number&0){
//第一次游戏开始 会循环7次
System.out.println(random_number); //这次输出随机数 方便测试
System.out.println("请输入数字");//提醒玩家输入数字
Scanner s = new Scanner(System.in);//java中的接收用户输入的类
String str="";
//定义一个用于接收用户输入的字符串的str
String position=""; //记录下玩家正确位置的数字
str=s.next();
//接收用户输入的数字
while(!str.matches("^\\d{4}$")){
//这里用正则表达式验证用户是否输入正确的数据,不能让玩家输入除了数字以外的符号
System.out.println("输入格式有误,请重新输入 \n"); //如果玩家输错了 就提示
str=s.next();
//重新接收玩家的输入的数字
String results="";
//定义一个结果用于反馈用户输入正确与否
for(int i=0;i&str.length();i++){
if(data.charAt(i)==str.charAt(i)){
//比较玩家输入的数字与随机数之间是否相等
results+="R";
//相等则正确 输出一个R
int j=i+1;
//因为数字位置从0开始的 因此要加1
position+=""+j;
//记录下数字正确的位置
results+="E";
if(results.contains("E")){
//如果结果中村E 则有错误 应在分数中扣10分
System.out.println("猜测中存在错误,结果为"+results);
score=score-10;
System.out.println("正确的位置有"+position+","+"分数:"+score);
System.out.println("恭喜猜对全部数字,游戏结束");
System.out.println(score);//如果玩家都输入正确就跳出循环,并显示最后分数
System.out.println("你还有"+number+"次机会");
if(number==0){
System.out.println("没有猜对,游戏结束!");
我只是过来赚取积分的谢谢了
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐已解决问题
急求一道C语言题答案【在线等】
假设已有10个学生的成绩,从键盘上输入这10个学生的成绩(成绩的值由你自己来定),输出10个学生成绩的平均分(用%.2f格式输出),并且输出高于平均分的成绩(成绩之间用一个空格隔开)。(提示:使用一维数组来存放学生的成绩,数组的类型为int型。)要求:(1)学生的个数改变了(不是10而是其他数值)怎么办?因此,为了增强程序的通用性,请定义符号常量来表示学生的个数。(2)为了让程序的使用者更方便,请在程序中适当加一些提示性的输出语句,比如:&请输入学生的成绩:&;&这些学生的成绩的平均分是:&;&高于平均分的成绩如下所示:&。(3)假设你定义的成绩数组名为grade,输出高于平均分的成绩时,要求输出的形式为:grade[下标1]=成绩1 grade[下标2]=成绩2&&各项之间用一个空格隔开。
浏览次数:226
用手机阿里扫一扫
最满意答案
#include&stdio.h&#define&N&5main(){float&a[N],sum=0,int&i;printf(&请输入学生的成绩:\n&);for(i=0;i&N;i++)scanf(&%f&,&a[i]);for(i=0;i&N;i++)sum+=a[i];ave=sum/N;printf(&这些学生的成绩数平均分是:%.2f&,ave);printf(&高于平均分的成绩如下所示:\n&);for(i=0;i&N;i++)if(a[i]&ave)printf(&a[%d]=%f&&,i,a[i]);}
答案创立者
以企业身份回答&
正在进行的活动
生意经不允许发广告,违者直接删除
复制问题或回答,一经发现,拉黑7天
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题
扫一扫用手机阿里看生意经
问题排行榜
当前问题的答案已经被保护,只有知县(三级)以上的用户可以编辑!写下您的建议,管理员会及时与您联络!
server is ok

我要回帖

更多关于 关于租船的应用题20道 的文章

 

随机推荐