北理工乐学 42. 五年级小学生的题目

42. 五年级小学生的题目

成绩5开启时间2022年10月24日 星期一 08:00
折扣0.8折扣时间2022年11月13日 星期日 23:55
允许迟交关闭时间2022年11月20日 星期日 23:55

   那两个小朋友在不断进步,他们已经学会了负数和多位数,于是他们又开始进行游戏了。小明给出一堆整数和运算要求(+、-、*、/、%),小丽要找出这些整数中的最大值和最小值,然后按照小明的要求算出最大数与最小数进行算术运算的结果。

输入:
    用逗号分隔的整数序列,及其运算符和等号

输出:
    最大数 op 最小数=结果

说明:本题目应该可以不使用数组就可以完成,关键是如何处理负数和减法。计算结果为 int。

 测试输入 期待的输出 时间限制 内存限制 额外进程
测试用例 1以文本方式显示
  1. 1,10,100,+,=↵
以文本方式显示
  1. 100 + 1 = 101↵
1秒64M0
测试用例 2以文本方式显示
  1. -100,-1,1,100,+,=↵
以文本方式显示
  1. 100 + (-100) = 0↵
1秒64M0
测试用例 3以文本方式显示
  1. -20,-10,0,10,20,*,=↵
以文本方式显示
  1. 20 * (-20) = -400↵
1秒64M0
#include<stdio.h>
#include<string.h>
int pow(int a);
int result(int M, int m, char s);
int main(void)
{
	int i = 0, j = 0, k = 0;
	int len[10] = { 0 };//每个数的长度
	int val[10] = { 0 };//每个数的数值
	char num[10][10] = {0};//某数某位置的字符
	int flag = 1;
	scanf("%c", &num[0][0]);
	while (flag)//想了好久的输入
	{
		while(num[k][i] != ',')
		{
			len[k]++;
			i++;
			scanf("%c", &num[k][i]);
		}
		k++;
		i = 0;
		scanf("%c", &num[k][0]);
		if(num[k][0] == '=')
			flag = 0;
	}

	for (i = 0; i < k - 1; i++)
	{
		if (num[i][0] != '-'){                 //正数直接从第一个字符开始处理
			for (j = 0; j < len[i]; j++)
			{
				val[i] += (num[i][j] - '0') * pow(len[i] - j - 1);
			}
		}
		else{                                   //负数从第二个字符开始
			for (j = 1; j < len[i]; j++)
			{
				val[i] += (num[i][j] - '0') * pow(len[i] - j - 1);
			}
			val[i] = -val[i];
		}
	}

	int M = val[0], m = val[0];//找最大和最小
	for (i = 1; i < k - 1; i++)
	{
		if (val[i] > M)
			M = val[i];
		if (val[i] < m)
			m = val[i];
	}

	char s = num[k - 1][0];//运算符,由输入程序可知在num[k-1][0]的位置
	if (M < 0)
		printf("(%d) %c (%d) = %d\n", M, s, m, result(M, m, s));
	else
	{
		if (m < 0)
			printf("%d %c (%d) = %d\n", M, s, m, result(M, m, s));
		else
			printf("%d %c %d = %d\n", M, s, m, result(M, m, s));
	}
	return 0;
}

int result(int M, int m, char s)//计算函数
{
	int r;
	if (s == '+')r = M + m;
	if (s == '-')r = M - m;
	if (s == '*')r = M * m;
	if (s == '/')r = M / m;
	if (s == '%')r = M % m;
	return r;
}
int pow(int a)//求10的a次方的函数(整型)
{
	int i, r = 1;
	for (i = 1; i <= a; i++)
	{
		r *= 10;
	}
	return r;
}
  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
北京理工大学成立于1940年,是中国一所以工科为主、工、理、管、文、法等多学科协调发展的综合性大学。乐学作业是北京理工大学的一种独特教育理念,强调学生在学习过程中的快乐体验和有效成果。 乐学作业的核心理念是让学生从传统的单一教学模式中解放出来,培养积极主动的学习态度和兴趣。同时,乐学作业也倡导理论与实践相合,鼓励学生动手实践,锻炼解决问题的能力。 在乐学作业中,学生可以根据自己的兴趣和特长选择适合自己的课程和项目。学校提供了丰富的学科和专业,包括工程、科学、管理、文学、法学等多个领域。学生可以通过多种途径获取知识,例如课堂教学、实验研究、社会实践等。 乐学作业的教学方法也非常灵活多样。老师会根据学生特点和需求提供个性化指导,帮助学生克服学习困难。同时,学生在团队合作中也可以相互学习、相互促进。学校还注重培养学生的创新思维和实践能力,鼓励学生进行创新性的研究和项目实践。 乐学作业的目的是培养具备批判性思维、创新意识和实践能力的综合型人才。在这种教育理念下,学生可以更主动地参与学习,享受到学习的乐趣,并且能够更好地适应社会的发展和变化。 作为一所享有盛誉的高校,北京理工大学的乐学作业模式不仅在国内受到关注和推崇,也赢得了国际上的广泛认可。它为学生提供了全面的教育平台,培养了一批才华横溢的年轻人,为社会的进步和发展做出了重要贡献。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值