c语言长点程序,第一次编辑这么长的C语言程序。(刚学半年)

02aa826a31708544077861c91e862e1f.png

//包括计算机猜数和用户猜数两个功能。

//计算机猜数包括用户输入数(number)和计算机猜的数guess1以及正确与否。

//每个组属性包括:序号(num);计算机随机产生的数(magic),在1~100以内。

//每个数猜测次数(count),每个数允许猜10次;每个数猜测正误(correct),猜对为1,猜错为0。

//对计算机猜数结果输出。

//对5个人按猜测次数由小到大排序,输出结果列表。

//结果保存文件中。

#include

#include

#include

#include

struct game

{

int num;

int magic;

int count;

int correct;

};

struct data

{

int gues[10];

};

/*计算机猜数*/

void guess_number1(int number,int *guess1,char correct[],int n)

{

srand(time(NULL));

(*guess1)=rand()%100+1;

printf("计算机猜的数为:%d\n",*guess1);

if((*guess1)

{printf("结果:低\n");strcpy(correct,"低");}

else if((*guess1)>(number))

{printf("结果:高\n");strcpy(correct,"高");}

else

{printf("结果:正确\n");strcpy(correct,"正确");}

}

/*自定义猜数函数*/

void guess_number(int mag,int *coun,int *corr,int guess[],int n )

{

*coun=0;

*corr=0;

int i=0,j;

while((*coun)

{ printf("please guess a magic number:");

scanf("%d",&guess[i]);

(*coun)++;

if(guess[i]>mag)

printf("Wrong! Too big!\n");

else if (guess[i]

printf("Wrong! Too small!\n");

else

{ printf("Right!\n");

(*corr)=1;

break; }

i++;

}

for(j=i+1;j

guess[j]=0;

}

/*自定义按猜测次数排序函数,按猜的次数由少到多排列,(起泡法)*/

void sort(struct game person[],int n,struct data num[],int a )

{ int i,j;

struct game temp;

struct data t;

for(i=0;i

for(j=0;j

if(person[j].count>person[j+1].count)

{ temp=person[j];

person[j]=person[j+1];

person[j+1]=temp;

t=num[j];

num[j]=num[j+1];

num[j+1]=t;

}

}

/*自定义保存函数*/

void save(struct game person[],int n ,int number,int *guess1,char correct[],int t,struct data num[],int a)

{

FILE *fp;

int i,j;

if ( (fp=fopen("d:\\guess.txt", "w"))==NULL)

{

printf (" cannot open this file\n") ;

exit(0) ;

}

fprintf(fp,"用户输入的数 计算机猜的数 猜的对错 \n");

fprintf(fp,"%9d %13d %8s \n",number,*guess1,correct);

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

{ fprintf(fp,"编号 计算机产生数 猜的次数 猜的对错 \n");

fprintf (fp, "%3d %10d %12d %10d \n",person[i]. num, person[i]. magic, person[i]. count, person[i]. correct);

fprintf(fp,"你猜的数 \n");

for(j=0;j<10;j++)

fprintf (fp," %10d \n",num[i].gues[j]);

}

fclose(fp) ;

}

/*主函数*/

int main()

{

struct game person[5];

struct data num[5];

int i,j,k,t;

int number;

int guess1;

char correct[10];

while(1)

{ printf("请选择功能:输入1,计算机猜数;输入2,人猜数。\n");

scanf("%d",&k);

switch(k)

{case 1:printf("执行功能%d\n",k);

while(1)

{ printf("请输入1~100的任意数值。\n");

scanf("%d",&number);

guess_number1(number,&guess1,correct,10);

printf("是否继续进行计算机猜数,不是,输入1,是,键入其他数继续。\n");

scanf("%d",&j);

if(j==1)

break;} break;

case 2:printf("执行功能%d\n",k);

again:

srand(time(NULL));

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

{ person[i].num=i+1;

person[i].magic=rand()%100+1;

printf("\n计算机已产生第%d个数,请第%d个人猜数:\n",i+1,i+1);

guess_number(person[i].magic,&person[i].count,&person[i].correct,&num[i].gues[0],10);

}

printf("是否继续进行人猜数,是,输入1,不是,键入其他数继续。\n");

scanf("%d",&j);

if(j==1)

goto again;

break;

default:;

}

printf("是否结束猜数游戏,是,输入1,不是,键入其他数继续。\n");

scanf("%d",&t);

if(t==1)

break;

}

sort(person,5,num,5);

save(person,5,number,&guess1,correct,10,num,5);

printf("\n");

printf("功能1,计算机猜数结果:\n");

printf("用户输入的数 计算机猜的数 猜的对错 \n");

printf("%9d %9d %8s\n",number,guess1,correct);

printf("功能2,用户猜数结果:\n");

printf("编号 计算机产生数 猜的次数 猜的对错 \n");

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

printf("%3d %9d %10d %8d \n",person[i].num,person[i].magic,person[i].count,person[i].correct);

return 0;

}

01:46

603697a38f40a7bf252fcacc2d040162.png

一个字:我太难了。为了完成作业,熬了三个通宵,在家学习太难了,作业要求太变态了。好想开学。

举报/反馈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值