寒假大作战04

问题 回答
这个问题属于哪个课程 2019级计算机4班 (中南林业科技大学涉外学院)
这个作业要求在哪里 寒假大作战04
作业正文 利用原本的代码使用其他数据类型(%d %g %d)来实现更多的功能
参考文献 百度 C Prime Plus %g和%d

提交内容

设计思路和遇到的问题

设计思路:
还是三年级的问题,情况太多了,之后使用最笨的方法“枚举”,就是把所以的情况一个个例举出来
问题:
还是没有明白%g和%d之间的区别,以及怎么样才能简单的满足题目的所以要求

程序结果截图

一年级题运算过程

二年级题运算过程

三年级题运算过程

程序代码

include<stdio.h>

include<stdlib.h>

int gradeone();int one_1();
int gradetwo();int two_1();
int gradethree();int three_1();
int help();
int end();
int error();
int main()
{
printf("\t\t\t\t\t口算生成器\n欢迎使用口算生成器:\t\t\t\t\n");
printf("\n\n帮助信息:\n\n您需要输入命令行代号来进行操作,且\n一年级题目为不超过位的加减法;\n");
printf("二年级题目为不超过百位的加减法;\n三年级题目为不超过百位的加减乘除混合题目.\n");
while (1)
{
printf("操作列表:\n1)一年级 2)二年级 3)三年级 \n 4)帮助 5)退出程序\n请入操作> ");
int input;
scanf("%d", &input);
printf("<执行操作 😃\n\n");
switch (input)
{
case 1:gradeone(); break;
case 2:gradetwo(); break;
case 3:gradethree(); break;
case 4:help(); break;
case 5:end();break;
default:error();continue;
}
printf("\n\n执行完了\n\n");
}
system("pause");
exit(0);
}
int end()
{
printf("程序结束,欢迎下次使用\n按任意键结束......\n");
exit(0);
}
int error()
{
printf("error!!!!\n请重新输入!\n\n\n\n\n\n");
}
int gradeone()
{
printf("现在是一年级题目:\n");
printf("请输入生成个数> ");
one_1();
}int one_1()
{
int n,i;
int a,b,c;
scanf("%d",&n);
printf("\n<执行操作 😃\n");
for(i=0;i<n;i++)
{
a=rand() % 10+1;
b=rand() % 10+1;
c=rand() % 2;
if(c==0)
printf("%2d + %2d = %2d\n",a,b,a+b);
else
printf("%2d -%2d = %2d\n",a,b,a-b);
}

}
int gradetwo()
{
printf("现在是二年级题目:\n");
printf("请输入生成个数> ");
two_1();
}
int two_1()
{
int n,i;
int a,b,c;
float d;
scanf("%d",&n);
printf("\n<执行操作 😃\n");
for(i=0;i<n;i++)
{
a=rand() % 10+1;
b=rand() % 10+1;
c=rand() % 2;
if(c0)
{
d=a/(b1.0);
printf("%2d / %2d = %2g\n",a,b,d);
}
else
{
d=a b;
printf("%2d * %2d = %2g\n",a,b,d);
}
}
}
int gradethree()
{
printf("现在是三年级题目:\n");
printf("请输入题目数n:");
three_1();
}
int three_1()
{ int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
int t1,t2,t3;
t1=rand()%100;
t2=rand()%100;
t3=rand()%100;
char s1=(rand() % 2 == 0) ? '+' : '-';
char s2=(rand() % 2 == 0) ? '+' : '-';
char s3=(rand() % 2 == 0) ? '/' : '
';
char s4=(rand() % 2 == 0) ? '/' : '
';
switch(rand()%4)
{
case 0://先加减后乘除
if(s1
'+')
{
if(s3'')
printf("%2d %c %2d %c %2d =%d\n",t1,s1,t2,s3,t3,(t2
t3)+t1);
if(s3
'/')
printf("%2d %c %2d %c %2d =%f\n",t1,s1,t2,s3,t3,(float)(t21.0/t31.0)+t1);
}
if(s1'-')
{
if(s3
'')
printf("%2d %c %2d %c %2d =%d\n",t1,s1,t2,s3,t3,t1-(t2
t3));
if(s3'/')
printf("%2d %c %2d %c %2d =%f\n",t1,s1,t2,s3,t3,(float)(t1-(t21.0/t31.0)));
}
break;
case 1://纯加减法
if(s1
'+')
{
if(s2'+')
printf("%2d %c %2d %c %2d = %d\n",t1,s1,t2,s2,t3,(t1+t2+t3));
if(s2
'-')
printf("%2d %c %2d %c %2d = %d\n",t1,s1,t2,s2,t3,(t1+t2-t3));
}
if(s1'-')
{
if(s2
'+')
printf("%2d %c %2d %c %2d = %d\n",t1,s1,t2,s2,t3,(t1-t2+t3));
if(s2'-')
printf("%2d %c %2d %c %2d = %d\n",t1,s1,t2,s2,t3,(t1-t2-t3));
}
break;
case 2://先乘除后加减
if(s3
'')
{
if(s1=='+')
printf("%2d %c %2d %c %2d =%d\n",t1,s3,t2,s1,t3,t1
t2+t3);
if(s1'-')
printf("%2d %c %2d %c %2d =%d\n",t1,s3,t2,s1,t3,t2*t3-t1);
}
if(s3
'/')
{
if(s1'+')
printf("%2d %c %2d %c %2d =%f\n",t1,s3,t2,s1,t3,(float)((t11.0/t21.0)+t3));
if(s1
'-')
printf("%2d %c %2d %c %2d =%f\n",t1,s3,t2,s1,t3,(float)(t11.0/t21.0-t3));
}
break;
case 3://纯乘除法
if(s3'*')
{
if(s4
'')
printf("%2d %c %2d %c %2d =%d\n",t1,s3,t2,s4,t3,(t1
t2t3));
if(s4=='/')
printf("%2d %c %2d %c %2d =%f\n",t1,s3,t2,s4,t3,(float)(t1
t21.0/t31.0));
}
if(s3'/')
{
if(s4
'')
printf("%2d %c %2d %c %2d =%f\n",t1,s3,t2,s4,t3,(float)((t1
1.0/t21.0)t3));
if(s4=='/')
printf("%2d %c %2d %c %2d =%f\n",t1,s3,t2,s4,t3,(float)(t11.0/t21.0/t3*1.0));
}
break;
default:continue;
}
}
}
int help()
{
printf("帮助信息:\n您需要输入命令行代号来进行操作,且\n一年级题目为不超过十位的加减法;\n二年级题目为不超过百位的加减法;\n ");
printf("三年级题目为不超过百位的加减乘除混合题目.\n");
}

Gitee上传截图与个人主页链接

远程仓库

本地仓库

码云个人主页:https://gitee.com/wang_xiang_zhen)

posted on 2020-02-17 15:48  王岐桐  阅读(88)  评论(0编辑  收藏