欢迎来到LQ的博客

C语言寒假大作战04

C语言寒假大作战04

这个作业属于哪个课程班级链接
这个作业的要求 作业要求
这个作业的目标 完善口算题菜单的功能,学习%g的功能
参考文献 %g在C语言中的意思
作业正文 此篇博客

2.2.2设计思路和遇到的问题

设计思路:

1.在上一次的作业的基础上完善答案随着题目一起输出。

2.利用%g的学习,代替%f的直接输出,减少不必要数字的输出,节约空间。

3.完善上次的代码,该减减该加加,特别扩充了几个浮点变量。

 

心路历程:

自信(想出这个挺简单的,首先要给自己足够的自信心)困惑(%g的输出和 %f 到底有什么区别?)豁然开朗(在打印输出的时候,%g会自动选择宽度较小的输出,例如:要输出654.321的单精度浮点值,此时%f输出的是654.320984,而%g输出的就是654.321,另外输出的654.320984是因为在内存中的存储误差引起的)有些懊恼(秉承节约空间的思想,我在前一个作业中使用的变量甚少,在此次作业中无法继续利用,需要定义变量来接收这些随机值,随后再进行计算)平常心(顺利写出符合要求的代码)

 

2.2.3程序结果截图

 

 

 

 

 

 

 

2.2.4程序代码

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int help(int m);
int main(void)
{
time_t t;
srand((unsigned) time(&t));
printf("====口算生成器====\n");
printf("欢迎使用此生成器(笑\n");
int a=-1;
int i,m,b,j;
double c1,c2,c3;
int HELP,EXIT,n,x;
char ch,ch2;
while(a!=0)
{
printf(" \n");
printf(" \n");
printf("操作列表:\n");
printf("1>壹年级    2>贰年级     3>叁年级\n");
printf("4>HELP      5>EXIT\n");
printf("请选择:\n");
scanf("%d",&a);

    switch (a)
{
case 1:
printf("现在是壹年级时间\n");
printf("请给出需要生成的题目个数:");
scanf("%d",&m);
printf("题目如下:\n");
printf("\n");
for(i=0;i<m;i++)
{
c1=rand()%11;
c2=rand()%11;
b=rand()%2;
if(b==1)
printf(" %.f + %.f = %g\n", c1,c2,c1+c2);
else
printf(" %.f - %.f = %g\n", c1,c2,c1-c2);
}
break;
case 2:
printf("现在是贰年级时间\n");
printf("请给出需要生成的题目个数:");
scanf("%d",&m);
printf("题目如下:\n");
printf("\n");
for(i=0;i<m;i++)
{
c1=rand()%101;
c2=rand()%101;
c3=rand()%100+1;
b=rand()%2;
if(b==1)
printf(" %.f * %.f = %g\n", c1,c2,c1*c2);
else
printf(" %.f / %.f = %g\n", c1,c3,c1/c3);
}
break;
case 3:
printf("现在是叁年级时间\n");
printf("请给出需要生成的题目个数:");
scanf("%d",&m);
printf("题目如下:\n");
printf("\n");
for(i=0;i<m;i++)
{
double c4,c5;
c1=rand()%101;
c2=rand()%100+1;
c3=rand()%100+1;
b=rand()%4;
switch(b)
{
case 0:
ch='+';c4=c1+c2;break;
case 1:
ch='-';c4=c1-c2;break;
case 2:
ch='*';c4=c1*c2;break;
case 3:
ch='/';c4=c1/c2;break;
}
j=rand()%4;
  switch(j)
  {
  case 0:
  ch2='+';c5=c4+c3;break;
  case 1:
  ch2='-';c5=c4-c3;break;
  case 2:
  ch2='*';c5=c4*c3;break;
  case 3:
  ch2='/';c5=c4/c3;break;
}

printf(" %.f %c %.f %c %.f = %g\n", c1,ch,c2,ch2,c3,c5);
}
break;
case 4:
HELP=help(n);
break;
case 5:
printf("程序结束,欢迎下次使用,按任意键结束...\n");
return 0;
default:
printf("ERROR!!!");
}
}

}
int help(int n)
{
printf("\n");
printf("帮助信息:\n");
printf("您需要输入代号命令号来进行操作,另\n");
printf("壹年级的题目很舒服,为不超过十位的加减法\n");
printf("贰年级的题目不难,为不超过百位的乘除法\n");
printf("叁年级的题目在一二年级的基础上升华,为不超过百位的加减乘除混合运算\n");
}

 

2.2.5Gitee上传截图与链接

 

 

 

 

 

 

Gitee主页地址:

LQNB的主页

 

posted @ 2020-02-07 17:13  LQNB  阅读(904)  评论(0编辑  收藏  举报