编写一个“猜数字游戏”的程序

编写一个“猜数字游戏”的程序,第1张

/利用随机函数生成0---9之间的一个整数,从键盘输入数字猜该数,

每次提示输入的数字与生成的数字之间的大小关系,并统计猜数的次数

徊轮泻笙允靖檬�⒉率�拇问�暗燃三次以内为优秀,七次以内为良好,

否则为不及格)。 /

#include <stdioh>

#include <stdlibh>

int main()

{

int data, t, count = 0;

data = rand()%9;

do

{

printf("enter the integer you guess:");

scanf("%d", &t);

if (data == t)

{

printf("the data is:%d\n", data);

break;

}

else if(data > t)

{

printf("a little smaller\n");

}

else

{

printf("a little bigger\n");

}

count++;

}while(1);

if (count <= 3)

{

printf("优");

}

else if(count <= 7)

{

printf("良");

}

else

{

printf("不及格");

}

return 0;

}

char num[10] = {'零','一','二','三','四','五','六','七','八','九'};

char num2[10] = {'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};

char wei[4] = {'\0','十','百','千'};

char danwei[3] = {'万','亿'};

char wei2[4] = {'拾','佰','仟'};

这几个定义不对,因为汉字占两个字节,所要num等的长度要乘以2

wei2和danwei两个,当字符串遇到\0就会结束,所要这样定义是不对的

你要这么定义,也就是定义二维数组

num[10][] = {"零",一”,“二”,“三”,“四”,“五”,“六”,“七”,“八”,“九”};

其他的汉字定义也一样,我就不写了,下面我利用的时候,就默认改过了

思路,首先判断输入的x的长度,接着转换为0~9

lx=strlen(x);

for(i=0;i<lx;i++)

x[i]=x[i]-'0';

接着就是输出了,这个要交替输出

也就是输出一个x的字符0~9对应的num中的数,接着输出对应的万千亿等标识

代码是

for(i=0;i<lx;i++)

{

d=lx-i; //这里要计算这个位在这个字符到最后的位置,你懂

//这个可能控制不好,也就是一位的差距,你自己调试一下就可以

puts(num2[x[i]]); //输出x中的数对应的汉字

//接下来输出相应的百千万亿等汉字

if(d==2||d==6||d==10) //在十、十万、十亿位置输出十

puts(wei[0]);

if(d==3||d==7||d==11) //在百,百万、百亿位置输出百

puts(wei[1]);

if(d==4||d==8||d==12) //在千,千万,千亿位置输出千

puts(wei[2]);

if(d==5) //在万位输出万

puts(danwei[0]);

if(d==9) //在第九位输出亿

puts(danwei[1])

}

如果想显示完全数的因子的话,用数组存储比较合适。你的程序有个逻辑错误。

if(a%b==0)你忘记还有自身也是自身的因子数,导致后面的判别式永远不成立,应改为

if(a%b==0&&a!=b)

自己改了下用数组的:

#include<stdioh>

int

main()

{

int

k[20],a,b,c;

for(a=2;a<=1000;a++)

{c=0;

for(b=1;b<=a;b++)

{

if(a%b==0&&b!=a)

{

k[c]=b;

c++;

}

if(b==a){

int

num=0;

for(int

i=0;i<c;i++)

num=num+k[i];

if(num==a){

printf("%d

",a);

printf("its

factors

is

:

");

for(int

i=0;i<c;i++)

printf("%d

",k[i]);

printf("\n");

}

}

}

}

return

0;

}

以上就是关于编写一个“猜数字游戏”的程序全部的内容,包括:编写一个“猜数字游戏”的程序、C语言程序设计的一道题,一个把阿拉伯数字转换成中文大写数字的程序。我自己编写如下:、c语言:完全数程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9444938.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存