欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PAT甲级真题 1001 A+B Format

程序员文章站 2024-03-23 21:11:10
...

一、题目
PAT甲级真题 1001 A+B Format
二、思路
题目要求计算a+b(=c),并将结果c按照千位一分的格式输出。注意到a和b最多有7位,也就是c最多也是7位,那最多会加2个逗号。因此,将结果分三类:不加逗号、加一个逗号、加两个逗号。

三、代码

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int a, b, c, f, l, m;
	//f-former,即逗号前的部分;l-latter,即逗号后的部分;m-middle,即逗号之间的部分,只有第三种情况会用到
	scanf("%d %d", &a, &b);
	c = a + b;
	if (abs(c) < 1000)//第一种情况
		printf("%d", c);
	else if (abs(c) < 1000000) {//第二种情况
		f = c / 1000;//逗号前
		l = abs(c % 1000);//逗号后
		printf("%d,%03d", f, l);//按格式输出
	}
	else {//第三种情况
		f = c / 1000000;//逗号前
		m = abs((c - f * 1000000) / 1000);//逗号中
		l = abs((c - f * 1000000) % 1000);//逗号后
		printf("%d,%03d,%03d", f, m, l);//按格式输出
	}
	return 0;
}

四、总结
最初想用itoa函数将数字转换为字符串,但其实没必要,而且PAT编译器也不允许使用itoa。

感谢小王老师指导/(ㄒvㄒ)/~~

相关标签: PAT甲级真题