C语言寒假大作战04

2.2.1 作业头:

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2019-2/
这个作业的要求在哪 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/10279
这个作业的目标 不看视频操作git
作业正文 https://www.cnblogs.com/hql201661/p/12312085.html
其他参考文献 https://www.cnblogs.com/abcd123456/p/12260027.html

2.2.2 设计思路和遇到的问题

思路:在第三次作业的基础上,添加答案。利用if-else语法实现符号的转变,并用表达式,把结果表达出来。
问题:(1)一年级题目还好,二年级题目我就发现我答案一直都是错的,看了别人的代码用的都是%g后面去网上查了一下,g格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出是占宽度较小的一种),且不输出无意义的零。而d格式字符。用来输出十进制整数。
     (2)还是输出答案问题,我发现我的答案都是整数,这时候我想肯定是定义出了问题。

2.2.3 程序结果截图





2.2.4 程序代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int fen1 ()
{
	char ops[2]={'+','-'};
	int i, n, op, suiji1, suiji2, result;
	printf("现在是一年级题目:\n请输入生成题目的个数:");
	scanf("%d", &n);
	
	for(i=0; i<n; i++)
	{
		op= rand()%2;;
		suiji1=rand()%10;
		suiji2=rand()%10;
		if(ops[op]=='+')
		result=suiji1+suiji2;
		else
		result=suiji1-suiji2;
		printf("%d %c %d= %d\n", suiji1, ops[op],suiji2, result);
	} 
}

int fen2 ()
{
	char ops[2]={'*','/'};
	int i, n, op;
	double result, suiji1, suiji2;
		printf("现在是二年级题目:\n请输入生成题目的个数:");
	    scanf("%d", &n);

	for(i=0; i<n; i++)
	{
		op= rand()%2;
		suiji1=rand()%100;
		suiji2=rand()%100;
		if(ops[op]=='*')
		result=suiji1*suiji2;
		else
	    result=suiji1/suiji2;
		printf("%2g %c %2g= %2g\n", suiji1, ops[op], suiji2, result);
	} 
}

int fen3 ()
{
	char ops1[2]={'+','*'}, ops2[2]={'-','/'};
	int i, n, op1, op2;
	double result, suiji1, suiji2, suiji3;
	printf("现在是二年级题目:\n请输入生成题目的个数:");
	scanf("%d", &n);
	
	for(i=0; i<n; i++)
	{
		suiji1=rand()%100;
	    suiji2=rand()%100;
	    suiji3=rand()%100;
		op1= rand()%2;
		op2= rand()%2;
		if(op1==0&&op2==0) 
		result=suiji1+suiji2-suiji3;
		else if(op1==0&&op2==1)
		result=suiji1+suiji2/suiji3;
		else if(op1==1&&op2==0)
		result=suiji1*suiji2-suiji3;
		else
		result=suiji1*suiji2/suiji3;
		printf("%2g %c %2g %c %2g= %2g\n", suiji1, ops1[op1], suiji2, ops2[op2], suiji3, result );
	} 
}

int help(int a) {
    printf("欢迎使用口算生成器 :\n \n \n帮助信息\n您需要输入命令代号来进行操作, 且\n");
    printf("一年级题目为不超过十位的加减法;\n二年级题目为不超过百位的乘除法;\n三年级题目为不超过百位的加减乘除混合题目.\n\n\n");
    printf("操作列表:\n1)一年级    2)二年级    3)三年级\n4)帮助      5)退出程序\n ");
    return 0;
}

int main()
{
    printf("========== 口算生成器 ==========\n");
    printf("欢迎使用口算生成器 :\n \n \n帮助信息\n您需要输入命令代号来进行操作, 且\n");
    printf("一年级题目为不超过十位的加减法;\n二年级题目为不超过百位的乘除法;\n三年级题目为不超过百位的加减乘除混合题目.\n\n\n");
    printf("操作列表:\n1)一年级    2)二年级    3)三年级\n4)帮助      5)退出程序\n ");
sr:printf("请输入操作 >\n\n");
    int a;
	time_t t;
    srand((unsigned) time(&t));
    scanf("%d", &a);
    printf("开始执行%d命令\n", a);
    switch (a) {
    case 1:fen1();goto sr;
	case 2:fen2();goto sr;
	case 3:fen3(); goto sr;
    case 4:help(a); goto sr;
    case 5:printf("程序结束, 欢迎下次使用\n任意键结束……"); return 0;
    default:printf("Error!!!\n错误操作指令, 请重新输入"); goto sr;
    }
}

2.2.5 Gitee上传截图与链接


https://gitee.com/he_bridge/winter_vacation_battle_04

posted @ 2020-02-15 14:35  妖媚的乔薇  阅读(149)  评论(0)    收藏  举报