第二届“顶嵌杯”全国嵌入式系统C语言编程大赛初赛题目及源代码

本文介绍了第二届'顶嵌杯'全国嵌入式系统C语言编程大赛的初赛题目,包括输入输出规范和示例,为参赛者提供了清晰的指导。
摘要由CSDN通过智能技术生成

一直到26号晚上才发现要用GCC编译器,我提交的都是G++编译的,好在改起来很容易。初赛题目实在是让人大跌眼睛。废话不多说了,开始第一题。
分数加减法
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 3612   Accepted: 1159

Description

编写一个C程序,实现两个分数的加减法

Input

输入包含多行数据 
每行数据是一个字符串,格式是"a/boc/d"。 

其中a, b, c, d是一个0-9的整数。o是运算符"+"或者"-"。 

数据以EOF结束 
输入数据保证合法

Output

对于输入数据的每一行输出两个分数的运算结果。 
注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数

Sample Input

1/8+3/8
1/4-1/2
1/3-1/3

Sample Output

1/2
-1/4
0
这个题目一开始忘记了分母是1的情况要特殊处理,WA了两次。
惊奇地发现GCC可以在中间定义变量也能编译过。
#include <stdio.h>
int GetGCDRec(int n, int m)
{
   
	if ( n > m )
	{
   
		int tmp = n;
		n = m; 
		m = tmp;
	}
	while ( n != 0 )
	{
   
		m = m%n;
		int tmp = n;
		n = m; 
		m = tmp;
	}
	return m;
}
int main()
{
   
	int a, b, c, d;
	char ch[10];
	while ( scanf( "%s", ch ) != EOF )
	{
   
		a = ch[0]-'0';
		b = ch[2]-'0';
		c = ch[4]-'0';
		d = ch[6]-'0';
		int adbc = ( ch[3] == '+' )? a*d+b*c: a*d-b*c;
		int bd = b*d;
		int gcd;
		if ( adbc == 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值