[Coursera 计算导论与C语言基础] 第六周作业

最近在跟Coursera上北京大学的程序设计与算法专项课程,一共7门课程,这是第一门课计算导论与C语言基础。在这里做一个记录。

编程题#1:苹果和虫子

来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
输入
输入仅一行,包括n,x和y(均为整数)。
输出
输出也仅一行,剩下的苹果个数

//第六周 
//编程题#1:苹果和虫子
#include 
using namespace std;
int main()
{
	int n, x, y, result;
	n = y = y = result=0;
	cin >> n >> x >> y;
	if (y%x==0)
	{
		result = n - y / x;
	}
	else
	{
		result = n - (y / x+1);
	}
	if (result < 0) result = 0;
	cout << result << endl;
    return 0;
}

编程题#2:大象喝水
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。
输入
输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。
输出
输出一行,包含一个整数,表示大象至少要喝水的桶数。

//编程题#2:大象喝水
#include 
using namespace std;
int main()
{
	int h, r,result;
	double v;
	v= h= r=result= 0;
	const double pi = 3.14159;
	cin >> h >> r;
	v = pi*r*r*h;
	result = 20000 / v;
	if (result < 20000 / v)
	{
		result++;
	}
	cout << result << endl;
    return 0;
}

编程题#3:最高的分数
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗?
输入
输入两行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为0到100之间的整数。
输出
输出一个整数,即最高的成绩。

//编程题#3:最高的分数
#include ;
using namespace std;
int main()
{
	int n, score, max;
	n = score = max = 0;
	cin >> n;
	for (int i = 0; i < n;i++)
	{
		cin >> score;
		if (score> max) max = score;
	}
	cout << max << endl;
    return 0;
}

编程题#4:最大奇数与最小偶数之差的绝对值
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
输入6个正整数,且这6个正整数中至少存在一个奇数和一个偶数。
设这6个正整数中最大的奇数为a,最小的偶数为b,求出|a-b|的值
输入
输入为一行,6个正整数,且6个正整数都小于100
输入保证这6个数中至少存在一个奇数和一个偶数
输出
输出为一行,输出最大的奇数与最小的偶数之差的绝对值

//编程题#4:最大奇数与最小偶数之差的绝对值
#include 
using namespace std;
int main()
{
	//int odd[5] = { 0 };
	//int even[5] = { 0 };
	int x=0;
	//int oddpos = 0;
	int oddmax = 0;
	//int evenpos = 0;
	int evenmin = 100;
	int result = 0;
	for (int i = 0; i < 6; i++)
	{
		cin >> x;
		if (x % 2 == 0)
		{
			//even[evenpos] = x;
			if (x oddmax) oddmax = x;
			//oddpos++;
		}
	}
	result = oddmax - evenmin;
	if (result < 0) result = -result;
	cout << result << endl;
    return 0;
}

编程题#5:分离整数的各个数位
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
从键盘输入一个任意的三位整数,要求正确地分离出它的百位、十位和个位数,并分别在屏幕上输出,输出采用每行输出一个数的方式,不带其它符号。
输入
一个任意的三位整数
输出
一个任意的三位整数

//编程题#5:分离整数的各个数位
#include ;
using namespace std;
int main()
{
	int n = 0;
	cin >> n;
	int ge;
	int shi;
	int bai;
	ge = shi = bai = 0;
	bai = n / 100;
	shi = (n - 100 * bai) / 10;
	ge = n - 100 * bai - 10 * shi;
	cout << bai << endl;
	cout << shi << endl;
	cout << ge << endl;
    return 0;
}


你可能感兴趣的:(C/C++学习笔记)