一道关于C语言的题目求帮助!

1. 电脑随机产生1000—9999之间的数字(包括1000、9999);
提示:用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

2个回答

我用java写了一个希望楼主可以参考一下 而写分数的计算可能有点偏差,楼主可以改一改分数的计算方法 互勉
public static void main(String[] args) {

    int random_number=(int)(Math.random()*(9999-1000+1)+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;         //记录下数字正确的位置
        }else{
            results+="E";           
        }       
    }
    if(results.contains("E")){  //如果结果中村E 则有错误 应在分数中扣10分
        System.out.println("猜测中存在错误,结果为"+results);
        score=score-10;
        System.out.println("正确的位置有"+position+","+"分数:"+score);                                      
    }else{
        System.out.println("恭喜猜对全部数字,游戏结束");
        System.out.println(score);//如果玩家都输入正确就跳出循环,并显示最后分数
        break;
    }       
    number--;
    System.out.println("你还有"+number+"次机会");
    if(number==0){
        System.out.println("没有猜对,游戏结束!");
    }

}

}

xiao_quande
xiao_quande 其实就是换一换写法而已 例如java的输出是System.out.println(),C语言是printf() 总体是一样的
2 年多之前 回复
gegeda123
gegeda123 目前只是学过C,java 真的不了解,能用C编写一次吗
接近 3 年之前 回复

我只是过来赚取积分的谢谢了

gegeda123
gegeda123 一边呆着去
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
一道关于C语言的题目求帮助!
1. 请编写函数long fun(long int x),功能是:将长整型数x中每一位上为奇数的数依次取出,并逆序构成一个新数返回。例如:程序运行时输入123456789,输出:b=97531。n#includenlong fun(long int x)n nnvoid main()nlong a,b;n printf("Please input a long int num:");n scanf("%ld",&a);n b=fun(a);n printf("b=%ld\n",b);nn
C语言的一道表达式的题目,求帮助
/*本题目我用程序,不是全都是0吗,哪个是非0的呢?考察的是什么内容呢?rn4.设int x=2,y=4;,值为非0的表达式是(  ) rnA. 1/x*y rnB. 1/(x*y) rnC. 1.0/x/y rnD. 1/x/ (double)yrn*/rn#include rnrnvoid main()rnrn int x=2;rn int y=4;rnrn printf("%d",1/x*y);rn printf("%d",1/(x*y));rn printf("%d",1.0/x/y);rn printf("%d",1/x/(double)y);rn
求一道c语言题目
给定一个文件比如1.txt该文件中存有一列数,如下:rn10rn15rn31rn42rn.....rn求这些数的平均值?
一道C学生管理的题目,求帮助
[code=C/C++]#includern#includern#includern#includern#define N 30rnrnFILE *fp;rnint pd=0;rnrnrnstruct Studentrnrn int num;rn char name[20];rn int bj;rn char sex[2];rn char bir[20];rn double grade;rnstu[N],temp;rnrntypedef struct Student SJ;rnrnrn/****************************4删除函数****************************/rnvoid namedel(SJ stu[N])rnrn int i;rn char namedel[20],a;rn putchar(10);rn printf("请输入您要删除的姓名: ");rn scanf("%s",namedel);rn for(i=0;i=1e-10)rn rn pd=1;rn printf("学号:%d 姓名:%s 班级:%d 性别:%s 生日:%s 成绩:%2.1lf \n\n",stu[i].num,stu[i].name,stu[i].bj,stu[i].sex,stu[i].bir,stu[i].grade);rn putchar(10);rn rn while(!feof(fp))rn rn i++;rn fread(&stu[i],sizeof(SJ),1,fp);rn if((search-stu[i].grade)>=1e-10)rn rn pd=1;rn printf("学号:%d 姓名:%s 班级:%d 性别:%s 生日:%s 成绩:%2.1lf \n\n",stu[i].num,stu[i].name,stu[i].bj,stu[i].sex,stu[i].bir,stu[i].grade);rn putchar(10);rn rn rn if(pd==0)rn printf("对不起,没有找到您要的信息!\n");rnrn rnrnrnrnrn/**************菜 单*****************/rnvoid menu1(SJ stu[N])rnrn int b;rn if((fp=fopen("stu.dat","rb"))==NULL)rn rn printf("无法打开文件!");rn exit(0);rn rn printf("****************************************\n");rn printf("\t1----------按学号查询\n");rn printf("\t2----------按姓名查询\n");rn printf("\t3----------按成绩查询\n");rn printf("****************************************\n");rn putchar(10);rn printf("\t请输入: ");rn scanf("%d",&b);rn switch(b)rn rn case 1:rn searchnum(stu); rn break;rn case 2:rn searchname(stu);rn break;rn case 3:rn searchgrade(stu);rn break;rn rn fclose(fp);rnrnint menu(void)rnrn int i;rn printf("欢迎使用学生管理系统\n");rn printf("****************************************\n");rn printf("1--------------查询\n");rn printf("2--------------排序\n");rn printf("3--------------插入\n");rn printf("4--------------删除\n");rn printf("5--------------退出\n");rn printf("****************************************\n");rn putchar(10);rn printf("\t请输入:");rn scanf("%d",&i);rn return i;rnrnrnrnvoid main()rnrn int a=0,b=0;rn char c;rn dorn rn a=menu();rn switch(a)rn rn case 1:menu1(stu);break;rn case 2:sort(stu);break;rn case 3:insert(stu);break;rn case 4:del(stu);break;rn case 5:break;rn rn printf("\n\t还要继续吗?(Y/N)");rn dorn rn c=getche();rn putchar(10);rn while(c!='Y' && c!='y' && c!='N' && c!='n');rn while(c== 'y' || c == 'Y');rn putchar(10);rn printf("程序结束!\n");rnrn[/code]rnrnrn能帮我看下为什么排完序之后这程序就死掉了。。谢谢了。
一道C语言题目
1) 有如下C语言程序:rn#include rnvoid main()rn rn int x=100;rn int y=100;rn int i;rn for( i=0; x>98; y=i )rn printf("%d,%d\n",x--,y);rnrn则其运行输出结果正确的是( )。 (选择一项)rn rn a) 100,100rn99,1rn b) 100,100rn99,0rn c) 99,100rn98,1rn d) 99,100rn98,0rn 我运行了下 结果是B,但是不懂这是为什么。求哪位高手解答下!rnrnrn在线求解释。rn
c语言的一道题目
求解;rn#include rnvoid fun(int x)rn if(x/2>0)fun(x/2);rn printf("%d",x);rnrnmain()rn fun(6);rn printf("\n");rnrn
一道C语言的题目
歌星大奖赛 rn〔要求〕 rn(1)在歌星大赛中,有10个评委为参赛选手打分,分数为1至100分。选手最后得分为:去掉一个最高分和一个最低分,后其余8个分数的平均值。请编写一个程序实现。 rn(2)同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接近平均分)和最不公平(即与平均分的差距最大)的评委。 rn〔提示〕这个问题的第一个要求算法十分简单,但是要注意在程序中判断最大最小值的变量是如何赋值的。第二个要求为了考虑效率,要用到排序技术。 rnrn
一道C语言的题目!
算出1!+2!....+20!(请用C语言编程)
一道c语言的题目
关于成绩评定的,居然搞不定,请大家帮帮忙。rn#includern#includernmain()rnrn int score,temp;rn char grade;rn printf("please enter a score:");rn scanf("%d",score);rn if(score>100&&score<0)rn printf("you have enter a wrong score,please enter the real again");rn scanf("%d",score);rn else //运行时提示这里失误,mispaced else in funtion main,rn //请高手们指点指点是怎么回事。rn if(score==100)rn temp=9;rn elsern temp=(score-score%10)/10;rn switch(temp)rn rn case(9):grade='a';break;rn case(8):grade='b';break;rn case(7):grade='c';break;rn case(6):grade='d';break;rn case(5):rn case(4):rn case(3):rn case(2):rn case(1):rn case(0):grade='f';rn rn printf("the score is %d and the grade is %c",score,grade);rnrn或有更好的算法请大家提示,多谢!
求高手指点 一道c语言题目
#include rnvoid fun(int a, int b)rn int t;rn t=a; a=b; b=t;rnrnmain()rn int c[10]=1,2,3,4,5,6,7,8,9,0,i;rn for(i=0;i<10;i+=2) fun(c[i],c[i+1]);rn for(i=0;i<10;i++) printf("%d,",c[i]);rn printf("\n");rnrn答案是:1,2,3,4,5,6,7,8,9,0, 为什么不是2,1,4,3,6,5,8,7,0,9 求解惑?
求一道c语言排序题目
有两个集合,而且每个集合中都有数字和字母。要求在两个集合中分别抽出一个元素进行组合,并将多个组合进行排序。
一道C语言的题目,求大神解答
输入一个正整数,逐位分割该数的每一位数字,求由数字所构成的最大整数。例如;输入624891,得到最大整数:986421。要求定义和调用函数计算并返回一个x可构成的最大整数。
请教一道关于c语言的题目
有三个字符串How Hello High 用c语言编程,找出其中的最大者。rn
一道有趣的关于C语言指针的题目
在这里插入代码片
一道关于大顶堆的C语言题目
一道关于大顶堆的题目,其中rn空(3)(4)(5)rn这几句作用是将新插入元素后的堆调整成大顶堆,其实就是不断将新插入的元素往上移,但是问题是,rn[color=#FF0000][size=24px][b]前面已经定义了heapify()函数,有现成的调整大顶堆的函数了,为什么还要这么麻烦写这几句调整大顶堆的代码?[/b][/size][/color]rn是因为在这里有不得不这样做的原因吗?rnrnrn[img=https://img-bbs.csdn.net/upload/201605/15/1463303400_842291.png][/img]
c语言题目求帮助--快排
![图片说明](https://img-ask.csdn.net/upload/201603/15/1458053209_42544.jpg)
一道简单的C语言题目
[code=C/C++]#include rnvoid main()rnunion data int i;rn char c[2]; x;rn x.c[0]='A';rnx.c[1]='B';rnprintf("%c %c ",x.c[0],x.c[1]);rnx.i=65;rn printf("%c %c\n",x.c[0],x.c[1]);rn[/code]rn输出为什么是A B A,rn我知道共用体占用相同的内存空间,但是不明白为什么最后只输出一个A,另一个x.c[1]为什么没有数据。
一道C语言的题目求解!!
编写函数int fun(char *s1,char *s2),在字符串s1中统计字符串s2出现的次数并返回。若s2在s1中未出现,则返回0。例如:n若输入的字符串s1为:abaaAabcaabbabca,字符串s2为:ab ,则程序输出:n=4n若输入的字符串s1为:abaaAabcaabbabca,字符串s2为:abd,则程序输出:No findn#includen#includenint fun(char *s1,char *s2)nnnint main()n char a[80],b[80];n  int n;n  printf("Please input the first string:");n  gets(a);n  printf("Please input the second string:");n  gets(b);n  n=fun(a,b);n  if(n==0)n    printf("No find\n");n  else printf("n=%d\n",n);n  return 0;n
C语言笔试题目一道
下午和同学讨论一道题,很有意思,大家做做看rnvoid main(int c,int,int)rnrn int cc=0;rn double a=1.0;rn double b=1.0;rn while(b+a!=a)rn b/=2;rn cc++;rn rn cout<
一道C语言宏定义题目
#include rn#define MIN(x,y) (x)<(y)?(x):(y)rnmain() rnrn int i=10,j=15,k;rn k=10*MIN(i,j);rn printf("%d\n",k);rn rnrn为什么最后输出结果是15?请各位高手帮忙,谢谢
求教一道C语言题目
学生成绩管理系统rn按要求完成以下功能rn1).添加:在文件中添加学生纪录.(每位学生应该有学号,姓名,性别,三门功课成绩).rn2).显示:显示所有学生成绩rn3).修改:输入要修改的学生姓名,显示该学生的信息后,修改相应数据rn4).删除:删除指定姓名的学生纪录rn5).排序:分别可以按单科成绩,总分成绩由高到低排序rnrn三门功课就数学 ,英语 ,语文吧rn能帮我写一下分析过程,算法编写和代码吗?
问一道C语言题目
[code=C/C++]rn#define F(x) x*xrnmain()rnrnint a = 3,b = 4,c;rnc = F(a+b);rnprintf("%d\n",c);rnrn[/code]rnrn则程序执行后输出的值是多少?rn书上给的答案是19,但是我不知道这题是如何执行的,能跟我细说一下吗?
求助 一道C语言题目
输入5个城镇的名字和它距离伦敦的距离 程序会输出距离伦敦不到100英里的城市名。用数组和字符串完成你的程序
一道考研C语言题目
把一个文本文件的内容输出到屏幕rn要求一页显示23行,满23行提示用户rn我的问题是怎么判断满了23行?
一道二级C语言题目!
#include rn#include rnfun(char *w,int n)rnrnchar t,*s1,*s2;rns1=w;s2=w+n-1;rnwhile(s1
一道简单的c语言题目
在用vc6.0编写图形的时候,不能使用graphic.h 这个头文件,这是tc中使用的,在vc6.0中的图形函数应该是怎么一回事???
请教一道C语言题目
int *p,*q;rn然后问p=q+1与p=1+q有区别吗?为什么?
求解一道C语言题目!!!!
1. 电脑随机产生1000—9999之间的数字(包括1000、9999);n提示:用rand函数,该函数在stdlib.h库中,并保证多次运行产生不同的随机数n2. 玩家每轮有七次猜数的机会,如果七次都没有猜到,则失败,判为0分;n3. 玩家每轮可以请求帮助,提问关于产生数字的信息,扣分细则如下;n4. 游戏以百分制形式,初始分为100,最后得分最多为赢家。n 帮助内容及扣分细则:n. 判断你所猜的数中各位数字对应位置正误情况,以R表正确,E表错误。若随机数是2537,而猜的数是1234,则输出EERE,代表猜的数第3位正确,第1,2,4位错误。n——扣当前分数的1/10n. 判断你所猜的数中正确数字是什么。若随机数是2537,而猜的数是1234,则输出有两个数字正确,它们是2,3。 ——扣当前分数的1/10n#includen#includenint sort = 100;nint main()nnint in = 0;nint r = 0;nwhile (1)nnr = rand();nwhile (1000 <= r && r <= 9999)nnprintf("please enter data:");nscanf("%d", &in);nif (in > r || in < r) //如果大或小,减去当前分数的1/10nsort -= sort / 10;nprintf("当前分数%d\n", sort);nnnreturn 0;n
C语言 一道题目 求助
刚学 上课没认真听 求助啊 rnrn 让用户输入4字符串 然后按如下形式输出:rn(1)第一问是字符串输出顺序和字符串内字母顺序全反了rn(2)第二问是字符串内字母顺序反了rn(3)第三问是字符串顺序反了
一道C语言题目求助
输入精度e 和实数x,用下列公式求cos x 的近似值,精确到最后一项的绝对值小于e。要求定义和调用函数funcos(e,x)求余弦函数的近似值。rn然后我是这么做的没有错误但是不能算出要求的东西rn#includern#includernint main(void)rnrndouble e,result,x;rndouble funcos(double e,double x);rnrnprintf("输入精度:");rnscanf("%lf",&e);rnprintf("x=");rnscanf("%lf",&x);rnresult=funcos(e,x);rnprintf("cos %f = %f",x,result);rnrnrnrnrndouble funcos(double e,double x)rnrnint flag,digit,i;rndouble denominator,sum,item,numerator;rnrnsum=0;rnitem=1.0;rndenominator=1.0;rnflag=1;rn numerator=1.0;rndigit=0;rnwhile(fabs(item)>=e)rnrnitem=flag*numerator/denominator;rnnumerator=numerator*x*x;rndigit=digit+2;rndenominator=1.0;rnfor(i=digit;i>=1;digit--)rndenominator=denominator*i;rnflag=-flag;rnsum=sum+item;rnrnrnreturn sum;rnrn求指导哪里错误了
一道很难的c语言题目
背景rn以下是几个标准的表达式:rnrn5 * 2 + -3 rn5 * (2 + -3) rn5 + ((-4 * -5) + (((5 + (6 - 2)) * 7 + ((4 + 2) * (3 - 1)))) rn与之等价的波兰表达式为rnrn+ * 5 2 -3 rn* 5 + 2 -3 rn+ 5 + * -4 -5 + * + 5 - 6 2 7 * + 4 2 - 3 1 rn在普通的表达式中,符号是位于运算对象之间的,而在波兰表达式中,运算符号位于参与运算的对象之前。rnrn波兰式在计算中的价值在于它不需要使用括号,之所以如此是由于波兰式的操作符的先后顺序是明确的。rnrn如果我们用 P 表示波兰表达式,用 O 表示操作符,用 D 表示数字,则可以将波兰表达式定义为 P = O P P 或 P = D。 rnrn任务rn编写程序计算波兰表达式的值。rnrn输入rn输入第一行是一个整数,表示输入文件中共有几个波兰式,之后每一行是一个波兰表达式。rnrn每个表达式包含数字和二元操作符 +、-、*,操作数和运算结果都在 [-101000, 101000] 之间。rnrn可以假设每行的数据(运算符号和数字)总共不超过 100 个。rnrn输出rn对每个表达式输出其值。rnrn提示rn先不要考虑高精度的情况,只考虑一些普通的数字参加运算;待正确后,再用高精度函数替代加法、减法和乘法运算即可。rnrn 测试输入 期待的输出 rn 15↵ rn+ 10 21↵ 31↵ rn+ 10 -21↵ -11↵rn+ -10 21↵ 11↵ rnrn还有很多极其bt的测试用例 rn
求助一道c语言题目:
求一千以内包含1和3的素数,用c语言写怎么写?谢谢
[讨论]一道c语言的题目
rn设长正整数用数组存储,如有K位的长整数用数组a[]存储: rnm=a[k]*10^(k-1)+a[k-1]*10^(k-2)+……+a[2]*10+a[1]*1 rn并用a[0]存储长整数m的位数,即a[0]=k rn通常,存储长整数数组的每个元素只存储长整数的一位数字。长整数运算时,为了运算方便,产生的中间结果的某位数字可能会大于9。这时,就应调用本函数将它规整,是数组的每个元素只存储长整数的一位数字。函数formal(int *a)就实现这个特殊要求: rnvoid formal(int *a) rn rn int p; rn rn for (p=1 ;p<a[0]||a[p]>=10; p++) rn if (p >= a[0]) ____①_____; rn a[p+1] += a[p] / 10 ; a[p]=____②____; rn rn rn if (p>a[0]) ____③_____; rn rnrn第二个我填的是:a[p]=a[p]%10 ;rn第三个我填的是:a[0]=p ;rn问题是第一个填什么啊?rnrn
求助一道C语言题目
写一个程序 输入5个城镇的名字和它距离伦敦的距离 程序会输出距离伦敦不到100英里的城市名。用数组和字符串完成你的程序rnrn 求助
一道C语言田忌赛马的题目。
1.Descriptionrn为了迎接一年一度的光棍节,田忌为它的马儿举办了一场浩大的运动会。已知每场比赛有两匹马进行,田忌会记下来谁比谁跑得快。当所有比赛结束后,田忌会根据这些零散的成绩来确定每匹马在所有马中的总排名。rn由于突然降温下暴雨,田忌终止了比赛同时也懒得去整理成绩了,而这群没教养的马儿又急着想知道自己的排名。于是他的管家找来你,希望你能帮忙计算出有多少个马儿的排名可以确定。rnInputrn多组测试数据,每组数据格式为rn第一行有两个整数N和M,表示田忌有N(2<=N<=200)匹马以及现在进行了M(1<=M<=4500)场比赛rn下面M行是两个用一个空格分开的整数A和B表示,参赛马匹编号和结果(第一个数字A是胜利者)rnOutputrn一个整数,表示有多少匹马的结果是确定的。rnSample Inputrn5 5rn4 3rn4 2rn3 2rn1 2rn2 5rnSample Outputrn2rnrnrn想了好几天完全没想法,各位有没有什么方法来交流下的?多谢了。rn
一道C语言指针的题目
#include rn#includernmain() rnrn char* p1,*p2,str[50]="abc";rn p1="abc"; p2="abc";rn strcpy(str+1,strcat(p1,p2)); rn printf("%s\n",str);rnrnA) abcabcacb B)bcabcabc C)aabcabc D)cabcabcrn答案是C 想问一下怎么出来的,在Visual Studio2005里运行时出现rn“22.exe 中的 0x102aed22 (msvcr80d.dll) 处未处理的异常: 0xC0000005: 写入位置 0x00415643 时发生访问冲突”这个错误rn请大家帮帮忙谢谢
求教一道c语言题目……
设有:int a = 1,b = 2,c==3,d = 4,m = 2,n = 2;执行(m = a > b) && (n = c > d)后n的是多少?
初学者的一道C语言题目
我是一个C语言初学者,这里有一道题目苦苦思索而不得其解:一个四位数,当它的逆向排列得到的四未数是它自身的倍数。用C语言编程找 出符合这一条件的四位数来,谢谢大家!
关于C语言的一道题目求编程 新人求解
从键盘输入一个整数,输出距离该数最近的素数。根据输入的数不同,此问题可能有一个答案(或者比输入的数大或者比输入的数小),也可能需要输出两个值(一个比输入的数大,一个比输入的数小,两个距离输入的数一样近)。PS:数学意义上的最小素数是2,例如,若输入-213,结果应是2n不要太高深 开头用#include int main for scanf printf 等等这几类基础的吧n其他复杂的就算了吧
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法