C语言寒假大作战04
这个作业属于哪个课程 | 班级链接 |
---|---|
这个作业要求在哪里 | 作业链接 |
这个作业的目标 | 熟悉%g的使用 |
作业正文 | 此篇博客 |
其他参考文献 | 文章链接 |
1.设计思路和遇到的问题
设计思路
在上次作业的基础上增加输出计算的结果。
遇到的问题
1.被乘除的数没有乘1.0导致乘除输出的结果不对。
2.定义的字母重复导致输出结果不正确。
2.程序结果截图
3.程序代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ()
{
int n=-1, m, i, x, y;
char c, d;
time_t t;
srand((unsigned) time(&t));
printf ("====口算生成器====\n");
printf ("欢迎使用口算生成器:\n");
printf(" \n");
printf(" \n");
printf ("帮助信息\n");
printf ("您需要输入命令代号来进行操作,且\n");
printf ("一年级题目为不超过十位数的加减法;\n");
printf ("二年级的题目为不超过百位数的乘除法;\n");
printf ("三年级的题目为不超过百位的加减乘除的混合题目.\n");
while (n!=0)
{
printf(" \n");
printf(" \n");
printf("操作列表:\n");
printf("1>一年级 2>二年级 3>三年级\n");
printf("4>帮助 5>退出\n");
printf("请选择:\n");
scanf ("%d", &n);
printf (">>>执行操作:\n");
switch (n)
{
case 1: printf ("这是一年级的题目:\n");
printf ("请给出需要生成的题目个数:\n");
scanf ("%d", &m);
printf (">>>执行操作:\n");
for (i=1;i<=m;i++)
{
x=rand()%2;
if (x==1)
{
int a=rand()%10, b=rand()%10;
printf (" %d + %d = %d \n", a ,b, a+b);
}
else
{
int a=rand()%10, b=rand()%10;
printf (" %d - %d = %d \n", a , b, a-b);
}
}
break ;
case 2: printf ("这是二年级的题目:\n");
printf ("请给出需要生成的题目个数:\n");
scanf ("%d", &m);
printf (">>>执行操作:\n");
for (i=1;i<=m;i++)
{
x=rand()%2;
if (x==1)
{
int a=rand()%100, b=rand()%100;
printf (" %d * %d = %g \n", a, b, a*1.0*b);
}
else
{
int a=rand()%100, b=rand()%99+1;
printf (" %d / %d = %g \n", a, b, a*1.0/b);
}
}
break ;
case 3: printf ("这是三年级的题目:\n");
printf ("请给出需要生成的题目个数:\n");
scanf ("%d", &m);
printf (">>>执行操作:\n");
for (i=1;i<=m;i++)
{
int a=rand()%100, b=rand()%99+1, e=rand()%99+1;
double o, p;
x=rand()%4;
switch (x)
{
case 0:c='+', o=a+b; break;
case 1:c='-', o=a-b; break;
case 2:c='*', o=a*1.0*b; break;
case 3:c='/', o=a*1.0/b; break;
}
y=rand()%4;
switch (y)
{
case 0:d='+', p=o+e; break;
case 1:d='-', p=o-e; break;
case 2:d='*', p=o*1.0*e; break;
case 3:d='/', p=o*1.0/e; break;
}
printf (" %d %c %d %c %d = %g \n", a, c, b, d, e, p);
}
break ;
case 4:printf(" \n");
printf("帮助信息\n");
printf ("您需要输入命令代号来进行操作,且\n");
printf ("一年级题目为不超过十位数的加减法;\n");
printf ("二年级的题目为不超过百位数的乘除法;\n");
printf ("三年级的题目为不超过百位的加减乘除的混合题目.\n");
break;
case 5:printf ("程序结束,欢迎下次使用,按任意键结束");
return 0;
default:printf ("Error!!!\n");
printf ("错误操作指令, 请重新输入\n");
}
}
}