终端编码问题,我用了英文,但功能是完整的,图一乐:
#include <stdioh>
#include <stdlibh>
#include <timeh>
int main() {
int key, input;
srand(time(NULL));
key = rand() % 5 + 1;
printf("Guess who am I (from 1 to 5, 0 for exit)\n");
printf("Your answer: ");
while (1) {
scanf("%d%c", &input);
if (input == 0) {
break;
} else if (input == key) {
printf("Yes! Congratulations!");
break;
} else {
printf("No Try again!\nYour answer: ");
}
}
return 0;
}
int password,a[4],b[4],flag=1,count1,count2,i,j,count3;
password=rand()%1000; //随机是不是这样写。。我忘了,就是随机个四位数
a[0]=password/1000;
a[1]=password%1000/100;
a[2]=password%100/10;
a[3]=password%10;
while(flag)
{
scanf("%d",&temp);
b[0]=password/1000;
b[1]=password%1000/100;
b[2]=password%100/10;
b[3]=password%10;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(a[i]==b[j])
{ count1++; i++;}
printf(" %d ",count1);
for(i=0;i<4;i++)
if(a[i]==b[i])
count2++;
printf(" %d ",count2);
if(count2==4)
flag=0;
count3++;
}
printf("\n%d\n",count3);
// 猜数字cpp : Defines the entry point for the console application
//
#include <stdafxh>
#include <stdlibh>
#include <stdioh>
#include <timeh>
//随机生成4位数,要求没有重复数字
void ProduceRandomNumber(int data[4])
{
int z;
/随机选取1-9999的数,放弃1-999的数,选择1000-9999的数/
do
{
srand( (unsigned)time( NULL ) );
z=(rand()%100)(rand()%100);/随机选数/
data[3]=z%10;/把随即数分成4个/
data[2]=z/10%10;
data[1]=z/100%10;
data[0]=z/1000%10;
}while(z<1000||data[0]==data[1]||data[0]==data[2]||data[0]==data[3]||data[1]==data[2]||data[1]==data[3]||data
[2]==data[3]||data[0]==0);/判断每一位数是否相同,如果是则重新输出/
return ;
}
void Indata(int number,int data[4])
{
data[0]=number/1000%10;
data[1]=number/100%10;
data[2]=number/10%10;
data[3]=number%10;
}
int PosRight(int question[4],int answer[4])
{
int i,count=0;
for(i=0;i<=3;i++)
{
if(question[i]==answer[i])
{
count++;
}
}
return count;
}
int NumRight(int question[4],int answer[4])
{
int i,j,count=0;
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
if((question[i]==answer[j])&&(i!=j))
{
count++;
}
}
}
return count;
}
int main(int argc, char argv[])
{
int answer,count=0,input[4],output[4],m=0,n=0,choice;
ProduceRandomNumber(input);
printf(" 欢迎来玩猜数字游戏!\n 游戏开始啦!!!\n");
do
{
count++;
scanf("%d",&answer);
Indata(answer,output);
m=PosRight(input,output);
n=NumRight(input,output);
if(m==4)
{
printf("你真棒!!!\n这个数字就是%d%d%d%d\n你一共猜了%d次了!\n",input[0],input[1],input[2],input[3],count);
break;
}
else
{
printf("不好意思你错了哦!! 提示: %dA%dB\n",m,n);
}
if(count==8)
{
printf("你已经猜了八次了!还要继续吗?(1:yes/0:false)\n");
scanf("%d",&choice);
if(choice==1)
printf("继续吧!\n");
else
{printf("结束游戏!\n");
break;}
}
else if(count==15)
{
printf("你已经猜了15 次了,可能方法不对!下次继续吧!!!\n");
break;
}
}while(1);
return 0;
}
#include<stdioh>
#include<stdlibh>
#include<timeh>
int main()
{
int n,m,i = 0;
srand(time(NULL));
n = rand()%100+1;
do
{
printf("输入所猜数字:");
scanf("%d",&m);
i++;
if( m>n )
printf("猜错了!太大了!\n");
else if( m < n)
printf("猜错了!太小了!\n");
}while(m != n);
printf("答对了!\n");
printf("共猜测了%d次。\n",i);
if(i <= 5 )
printf("你太聪明了,这么快就猜出来了。\n\n");
else if(i > 5)
printf("你还需改进方法,以便更快猜出来!\n\n");
return 0;
}
#include<stdioh>
#include<timeh>
#include<mathh>
int main()
{
int i,a,n;
srand((int)time(NULL));
n=rand()%100+1;
for(i=0; i<5; i++)
{
printf("请输入一个介于1到100的整数:");
scanf("%d",&a);
if(a<n)
printf("猜小了!\n");
if(a>n)
printf("猜大了!\n");
if(a==n)
{
printf("猜对了!\n");
break;
}
}
return 0;
}
#include<stdioh>
#include<stdlibh>
#include<mathh>
#include<timeh>
void main()/主函数/
{
int a,b,times=0,i,j,guess=0,answer[5],g[5];
for(i=0;i<5;i++)/随即产生5个数/
{
srand((unsigned int)time(NULL));/以当前时间为种子/
answer[i]=rand()%9+1;/保证为1-9的数,rand产生随即0-65535的数,对9取余为0-8,都加1就是1-9了/
for(j=0;j<i;j++)
while(answer[i]==answer[j])/检查有没有重复的数据,有就重新生成/
{
answer[i]=rand()%9+1;
j=-1;/新生成的数要重新检查,此步后马上执行j++/
}
}
printf("随即的5个数是:");
for(i=0;i<5;i++)
printf("%d",answer[i]);/输出结果到屏幕,便于测试/
printf("\n");
printf("请输入猜测数字:\n%");
a=0;
while(a!=5)/a记录位置对并且数也对的,如果5个都对就是猜对了/
{
a=0;
b=0;/b记录数是有的,但位置不对的个数/
times++;
printf("第 %d 次猜测:\t",times);
scanf("%d",&guess);
while(guess<12345||guess>99999)/如果猜的数超过这个范围就是瞎猜的,肯定不对,再来一次/
{
printf("你输入了一个非常规数据,请重新输入:\t");
scanf("%d",&guess);
}
for(i=4;i>-1;i--)/把玩家猜的5个数放到数组中,便于检查对错/
{
g[i]=guess%10;
guess=(guess-g[i])/10;
}
for(i=0;i<5;i++)/检查数据对错/
{
for(j=0;j<5;j++)
{
if(g[i]==answer[j])/如果猜得的数与结果的某个数一样就把b加1/
{
b++;
if(i==j)/如果位置也对,那就是a加1了,对应的b已经加过,应该减1/
{
a++;
b--;
}
}
}
}
printf("猜测结果:%dA%dB\n",a,b);
if(a==5)
printf("\t答案正确\n"); /如果a=5就是猜对了/
}
}
以上就是关于猜数字游戏c语言编程一到五全部的内容,包括:猜数字游戏c语言编程一到五、C语言编程 人机猜数字、用C语言编写猜数字(喜欢挑战的人可以来看看哦)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)