• C语言寒假大作战04


    问题 答案
    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10277
    这个作业要求在哪 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10277
    这个作业的目标 运用rand()函数
    作业正文 https://www.cnblogs.com/xdf-123/p/12318622.html
    其他参考文献 百度 csdn

    2.2.2 设计思路和遇到的问题

    设计思路:
    rand函数的运用在上次的基础上。
    问题:
    随机数的构建,rand函数的运用。

    2.2.3 程序结果截图

    2.2.4 程序代码

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <string.h>
    void menu();
    void help();
    void one(); void operation_1();
    void two(); void operation_2();
    void three(); void operation_3();
    void error();
    int main()
    {
    	int opt = 1, n;
    	printf("==========口算生成器==========
    ");
    	printf("欢迎使用口算生成器:
    ");
    	printf("
    ");
    	help();
    	while (opt != 0)
    	{
    		menu();
    		printf("请输入操作> ");
    		scanf("%d", &opt);
    		printf("<执行操作:)
    ");
    		printf("
    ");
    		switch (opt)
    		{
    		case 1:operation_1(); break;
    		case 2:operation_2(); break;
    		case 3:operation_3(); break;
    		case 4:help(); break;
    		case 5:printf("程序结束, 欢迎下次使用
    ");
    			printf("任意键结束……");
    			opt = 0;
    		default:error(); break;
    		}
    	}
    	return 0;
    }
    void menu()
    {
    	printf("
    ");
    	printf("操作列表:
    ");
    	printf("1)一年级 2)二年级 3)三年级
    ");
    	printf("4)帮助 5)退出程序
    ");
    }
    void help()
    {
    	printf("
    ");
    	printf("帮助信息
    ");
    	printf("您需要输入命令代号来进行操作,且
    ");
    	printf("一年级题目为不超过十位的加减法
    ");
    	printf("二年级题目为不超过百位的乘除法
    ");
    	printf("三年级题目为不超过百位的加减乘除混合题目.
    ");
    }
    void operation_1()
    {
    	printf("请输入生成个数>");
    	one();
    }
    void operation_2()
    {
    	printf("请输入生成个数>");
    	two();
    }
    void operation_3()
    {
    	printf("请输入生成个数>");
    	three();
    }
    void one()
    {
    	int n, a, b, c, d;
    	time_t t;
    	srand((unsigned)time(&t));
    	printf("现在是一年级题目:
    ");
    	scanf("%d", &n);
    	printf("<执行操作:)
    ");
    	for (int i = 0; i < n; i++)
    	{
    		a = rand() % 10;
    		b = rand() % 10;
    		c = rand() % 2;
    		if (c == 0)
    		{
    
    			d = a + b;
    			printf("%d + %d = %d
    ", a, b, d);
    		}
    		else
    		{
    			d = a - b;
    			printf("%d - %d = %d
    ", a, b, d);
    		}
    	}
    
    }
    void two()
    {
    	int n, a, b, c;
    	float d;
    	time_t t;
    	srand((unsigned)time(&t));
    	printf("现在是二年级题目:
    ");
    	scanf("%d", &n);
    	printf("<执行操作:)
    ");
    	for (int i = 0; i < n; i++)
    	{
    		a = rand() % 10;
    		b = rand() % 10;
    		c = rand() % 2;
    		if (c == 0)
    		{
    			d = a * b;
    			printf("%d * %d = %g
    ", a, b, d);
    		}
    		else {
    			while (b == 0)
    			{
    				b = rand() % 10;
    			}
    			d = a / (b * 1.0);
    			printf("%d / %d = %g
    ", a, b, d);
    		}
    	}
    
    }
    void three()
    {
    	int n, m, i, a, b, c;
    	float z;
    	char fh1[2], fh2[2];
    	time_t t;
    	srand((unsigned)time(&t));
    	printf("现在是三年级题目:
    ");
    	scanf("%d", &n);
    	printf("<执行操作:)
    ");
    	char fh[4][6] = { "*","/","+","-" };
    	for (int i = 0; i < n; i++)
    	{
    		a = rand() % 100;
    		b = rand() % 100;
    		c = rand() % 100;
    		while (a == 0 || b == 0 || c == 0)
    		{
    			a = rand() % 100; b = rand() % 100; c = rand() % 100;
    		}
    		strcpy(fh1, fh[rand() % 3]);
    		strcpy(fh2, fh[rand() % 3]);
    		if (strcmp(fh1, "*") == 0 && strcmp(fh2, "*") == 0)
    		{
    			z = a * b * c;
    			printf("%2d %s %2d %s %2d = %g
    ", a, fh1, b, fh2, c, z);
    		}
    		else if (strcmp(fh1, "*") == 0 && strcmp(fh2, "/") == 0)
    		{
    			z = a * b / (c * 1.0);
    			printf("%2d %s %2d %s %2d = %g
    ", a, fh1, b, fh2, c, z);
    		}
    		else if (strcmp(fh1, "*") == 0 && strcmp(fh2, "+") == 0)
    		{
    			z = a * b + c;
    			printf("%2d %s %2d %s %2d = %g
    ", a, fh1, b, fh2, c, z);
    		}
    		else if (strcmp(fh1, "*") == 0 && strcmp(fh2, "-") == 0)
    		{
    			z = a * b - c;
    			printf("%2d %s %2d %s %2d = %g
    ", a, fh1, b, fh2, c, z);
    		}
    		else if (strcmp(fh1, "/") == 0 && strcmp(fh2, "+") == 0)
    		{
    			z = a / (b * 1.0) + c;
    			printf("%2d %s %2d %s %2d = %g
    ", a, fh1, b, fh2, c, z);
    		}
    		else if (strcmp(fh1, "/") == 0 && strcmp(fh2, "-") == 0)
    		{
    			z = a / (b * 1.0) - c;
    			printf("%2d %s %2d %s %2d = %g
    ", a, fh1, b, fh2, c, z);
    		}
    		else if (strcmp(fh1, "/") == 0 && strcmp(fh2, "/") == 0)
    		{
    			z = a / (b * 1.0) / (c * 1.0);
    			printf("%2d %s %2d %s %2d = %g
    ", a, fh1, b, fh2, c, z);
    		}
    		else if (strcmp(fh1, "+") == 0 && strcmp(fh2, "-") == 0)
    		{
    			z = a + b - c;
    			printf("%2d %s %2d %s %2d = %g
    ", a, fh1, b, fh2, c, z);
    		}
    		else if (strcmp(fh1, "+") == 0 && strcmp(fh2, "+") == 0)
    		{
    			z = a + b + c;
    			printf("%2d %s %2d %s %2d = %g
    ", a, fh1, b, fh2, c, z);
    		}
    		else if (strcmp(fh1, "-") == 0 && strcmp(fh2, "-") == 0)
    		{
    			z = a - b - c;
    			printf("%2d %s %2d %s %2d = %g
    ", a, fh1, b, fh2, c, z);
    		}
    		else if (strcmp(fh1, "/") == 0 && strcmp(fh2, "*") == 0)
    		{
    			z = a / (b * 1.0) * c;
    			printf("%2d %s %2d %s %2d = %g
    ", a, fh1, b, fh2, c, z);
    		}
    		else if (strcmp(fh1, "+") == 0 && strcmp(fh2, "/") == 0)
    		{
    			z = a + b / (c * 1.0);
    			printf("%2d %s %2d %s %2d = %g
    ", a, fh1, b, fh2, c, z);
    		}
    		else if (strcmp(fh1, "+") == 0 && strcmp(fh2, "*") == 0)
    		{
    			z = a + b * c;
    			printf("%2d %s %2d %s %2d = %g
    ", a, fh1, b, fh2, c, z);
    		}
    		else if (strcmp(fh1, "-") == 0 && strcmp(fh2, "/") == 0)
    		{
    			z = a - b / (c * 1.0);
    			printf("%2d %s %2d %s %2d = %g
    ", a, fh1, b, fh2, c, z);
    		}
    		else if (strcmp(fh1, "-") == 0 && strcmp(fh2, "+") == 0)
    		{
    			z = a - b + c;
    			printf("%2d %s %2d %s %2d = %g
    ", a, fh1, b, fh2, c, z);
    		}
    		else if (strcmp(fh1, "-") == 0 && strcmp(fh2, "*") == 0)
    		{
    			z = a - b * c;
    			printf("%2d %s %2d %s %2d = %g
    ", a, fh1, b, fh2, c, z);
    		}
    	}
    
    }
    void error()
    {
    	printf("Error!!!
    ");
    	printf("错误操作指令, 请重新输入
    ");
    }
    

    2.2.5 Gitee上传截图与链接

    码云链接

    https://gitee.com/xiaodanfeng

  • 相关阅读:
    POJ 1721 CARDS(置换群)
    HDU 4609 3-idiots(FFT)
    BZOJ 4259 残缺的字符串(FFT)
    HDU 5763 Another Meaning(FFT)
    BZOJ 4503 两个串(FFT)
    hihoCoder 1388 Periodic Signal(FFT)
    HDU 5823 color II(FWT)
    HDU 5768 Lucky7(CRT+容斥原理)
    HDU 5446 Unknown Treasure(Lucas定理+CRT)
    HDU 5741 Helter Skelter(构造法)
  • 原文地址:https://www.cnblogs.com/xdf-123/p/12318622.html
Copyright © 2020-2023  润新知