C语言,自动生成题目程序

C语言,自动生成题目程序,第1张

程序已加详细注释,并调试通过。

#include<stdioh>

#include<stdlibh>

#include<timeh>

void main()

{int simple();/ 简单'+','-','','/'四则运算函数 /

int mix(); / 混合四则运算函数 /

void exchange(int p1,int p2,int p3);

struct team / 定义一个名称为team的结构体 /

{char name; / 结构体包括2个成员,一个是字符,代表名字 /

int score; / 一个是整数,代表分数 /

}tea[3]={{'A',100},{'B',100},{'C',100}};/ 定义包含三个变量的结构体数组tea[3] /

int i,p,j,t,k,n,m;

int a,b,c;

int result1,answer1,result2,answer2;

int q1,q2,q3;

char ch1,ch2;

printf(" \n"); / 图形界面 /

printf(" $ $\n");

printf(" $ $\n");

printf(" $ welcome jion in this competition!$\n");

printf(" $ $\n");

printf(" $ $\n");

printf(" \n");

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

printf("\n");

printf("input simple count number n:");/ 输入进行简单四则运算的总次数 /

scanf("%d",&n);

printf("\ninput mix count number m:");/ 输入进行混合四则计算的总次数 /

scanf("%d",&m);

printf("\n");

printf(" press any key to begain ! \n");

getch(); / 暂停程序,按任一键继续 /

printf("Begain!\n");/ 游戏开始 /

printf("The first turn\n");/ 第一轮 /

printf("This is simple count\n");/ 这一轮是简单四则运算 /

printf("Please look at the question:\n");

for(p=0;p<n;p++) / 执行n次简单四则计算 /

{result1=simple(); / 调用简单四则运算函数simple()并把返回的结果给整数变量result1 /

printf("Please input one team name:"); / 输入一个结构型team变量中的人名('A','B','C') /

getchar(); / 清除键盘缓冲区字符 /

scanf("%c",&ch1);

printf("\ninput your answer:"); / 输入答案 /

scanf("%d",&answer1);

for(k=0;k<3;k++)

{t=k;

if(ch1==tea[k]name) / 判断输入的名字和tea[3]中3个名字('A','B','C')哪个相同 /

if(result1==answer1)/ 如果输入的答案和计算机算出的答案相同,给该人加5分 /

tea[t]score+=5;

else

{ printf("This answer is wrong\n"); / 否则显示:答案错误 /

printf("The right answer is %d\n",result1);/ 并显示正确答案 /

tea[t]score-=5; / 同时该人分数减5 /

}

}

for(i=0;i<3;i++) / 打印3个人的名字和答案 /

printf("%c%d\n",tea[i]name,tea[i]score);

}

printf("This turn is end\n");/ 这一轮结束 /

printf("\n\n\n\n\n");

printf("The second turn begain!\n");/ 第二轮开始 /

printf("This is mix count!\n"); / 这一轮是混合计算 /

printf("Please look at the question:\n");

for(j=0;j<m;j++) / 执行m次混合计算 /

{result2=mix();/ 调用简单四则运算函数simple()并把返回的结果给整数变量result2 /

printf("please input one team:"); / 输入一个结构型team变量中的人名('A','B','C') /

getchar(); / 清除键盘缓冲区字符 /

scanf("%c",&ch2);

printf("\ninput your answer:");/ 输入答案 /

scanf("%d",&answer2);

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

{t=i;

if(ch2==tea[i]name) / 判断输入的名字和tea[3]中3个名字('A','B','C')哪个相同 /

if(result2==answer2)/ 如果输入的答案和计算机算出的答案相同,给该人加10分 /

tea[t]score+=10;

else

{ printf("\nyour answer is wrong\n"); / 否则显示:答案错误 /

printf("The right answer is %d\n",result2);/ 并显示正确答案 /

tea[t]score-=10; / 同时该人分数减10 /

}

}

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

printf("%c%d\n",tea[i]name,tea[i]score); / 打印3个人的名字和答案 /

}

a=tea[0]score;b=tea[1]score;c=tea[2]score;/ 比较3个人的分数高低 /

if(a>b&&b>c) / 按分数从高到低输出显示人名 /

printf("%c %c %c\n",'A','B','C');

if(a>b&&c>a)

printf("%c %c %c",'C','A','B');

if(a>b&&a>c&&c>b)

printf("%c %c %c\n",'A','C','B');

if(c>a&&c>b&&b>a)

printf("%c %c %c\n",'C','B','A');

if(b>a&&c>a&&b>c)

printf("%c %c %c\n",'B','C','A');

if(b>a&&a>c)

printf("%c %c %c\n",'B','A','C');

q1=&tea[0]score; / 将存放3人分数的3个内存地址赋给三个指向整数的指针变量q1,q2,q3 /

q2=&tea[1]score;

q3=&tea[2]score;

exchange(q1,q2,q3); / 调用交换函数把三人的分数从高到低排序,以便同上面的人名对应,这里实参为指针变量 /

printf("%d %d %d\n",tea[0]score,tea[1]score,tea[2]score);/ 从高到低打印分数 /

}

simple()

{int s,num1,num2,stpy;

srand((unsigned)time(NULL)); / 使用系统时间产生随机数,srand()函数对下面的随机函数rand()进行初始化/

num1=rand()%100+1;/ 求模得到随机数,随机数num1的范围是(0+1)-(99+1),即1-100 /

num2=rand()%100+1;/ 随机数num1的范围也是1-100 /

stpy=rand()%4+1; / 随机数stpy的范围是1-4 /

switch(stpy)

{case 1:s=num1+num2; / 当随机数stpy==1执行加法运算,求产生的两个随机数的和,num1+num2 /

printf("%d+%d=\n",num1,num2);break; / 输出显示计算式 /

case 2:if(num1>=num2)/ 当随机数stpy==2执行减法运算,并且是用大数减小数 /

{ s=num1-num2; / num1>num2时,num1-num2 /

printf("%d-%d=\n",num1,num2);break;

}

else

{ s=num2-num1; / num2>num1时,num2-num1 /

printf("%d-%d=\n",num2,num1);break; / 输出显示计算式 /

}

case 3:s=num1num2;/ 当随机数stpy==3执行乘法运算/

printf("%d%d=\n",num1,num2);break; / 输出显示计算式 /

case 4:s=num1/num2; / 当随机数stpy==4执行除法运算/

printf("%d/%d=\n",num1,num2);break; / 输出显示计算式 /

}

return(s); / 整数s保存运算的结果,并返回给主函数main()中变量result1 /

}

mix()

{int t,num1,num2,num3,stpy;

srand((unsigned)time(NULL));/ 使用系统时间产生随机数,srand()函数对下面的随机函数rand()进行初始化 /

num1=rand()%9+1;/ 求模得到随机数,随机数num1的范围是(0+1)-(8+1),即1-9 /

num2=rand()%9+1;

num3=rand()%9+1;

stpy=rand()%4+1; / 随机数stpy的范围是1-4 /

switch(stpy)

{case 1:t=(num1+num2)(num2-num3); / stpy==1执行带括号加,减,乘混合运算 /

printf("(%d+%d)(%d-%d)=\n",num1,num2,num2,num3); / 输出显示计算式 /

break;

case 2:t=num1num2/num3; / stpy==2执行带括号乘除混合运算 /

printf("%d%d/%d=\n",num1,num2,num3); / 输出显示计算式 /

break;

case 3:t=num1num2-num1/num3;/ stpy==3执行带乘,除,减混合运算 /

printf("%d%d-%d/%d=\n",num1,num2,num1,num3); / 输出显示计算式 /

break;

case 4:t=(num1+num2-num3)num3/num1; / stpy==4执行带括号加,减,乘,除混合运算 /

printf("(%d+%d-%d)%d/%d=\n",num1,num2,num3,num3,num1);

break;

}

return(t); / 整数t保存运算的结果,并返回给主函数main()中变量result2 /

}

void exchange(int p1,int p2,int p3)/ 交换函数,形参为指针变量 /

{void swap(int x,int y);/ 交换函数的目的是让分数从高到低排序,以便和前面的人名对应 /

if(p1<p2) swap(p1,p2); / 比较地址里的分数数值,然后再调用交换函数swap()交换地址里的数值 /

if(p1<p3) swap(p1,p3);

if(p2<p3) swap(p2,p3);

}

void swap(int x,int y)/ 交换指针里面的数值,即分数 /

{int t;

t=x; / 交换指针x和y里面的内容,即分数 /

x=y;

y=t;

}

十有九成是中病毒了,这是病毒寄存在你电脑上的一种常见的生存方式,病毒产生两个一样的文件 你删除1个 另一个就复制一个 彼此互相生存互相保护,一般遇到这种删除文件以后又自动生成了 那就是种病毒了 杀杀毒吧

以上就是关于C语言,自动生成题目程序全部的内容,包括:C语言,自动生成题目程序、应用程序删除后,又自动生成,经都删不完,该怎么办、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存