【Coursera 计算导论与C语言基础】苹果和虫子+最高分数+最大奇数与最小偶数差+分离整数的各个数位

编程题#1:苹果和虫子
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

注意: 总时间限制: 1000ms 内存限制: 65536kB

描述
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?

输入
输入仅一行,包括n,x和y(均为整数)。

输出
输出也仅一行,剩下的苹果个数

提示
注意:是要求完整的苹果数。

#include 
using namespace std;
int n, x, y;
int main() {
	cin >> n >> x >> y;
	if (y / x >= n) {
		cout << 0 << endl;
	}
	else {
		if (y % x == 0) {
			cout << n - y / x << endl;
		}
		else {//若不能整除,则多减去一个。
			cout << n - y / x - 1 << endl;
		}
	}
    return 0;
}

编程题#3:最高的分数
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

注意: 总时间限制: 1000ms 内存限制: 65536kB

描述
孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗?

输入
输入两行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为0到100之间的整数。

输出
输出一个整数,即最高的成绩。

#include 
using namespace std;
int n;
int score[100];
int main() {
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> score[i];
	}
	for (int i = 0; i < n; i++) {//冒泡略麻烦,可以直接比较大小替换max
		for (int j = 0; j < n - i - 1; j++) {
			if (score[j + 1] > score[j]) {
				int tmp = score[j];
				score[j] = score[j + 1];
				score[j + 1] = tmp;
			}
		}
	}
	cout << n << "个人中最高分为:" << score[0] << endl;
}

编程题#4:最大奇数与最小偶数之差的绝对值
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

注意: 总时间限制: 1000ms 内存限制: 65536kB

描述
输入6个正整数,且这6个正整数中至少存在一个奇数和一个偶数。

设这6个正整数中最大的奇数为a,最小的偶数为b,求出|a-b|的值

输入
输入为一行,6个正整数,且6个正整数都小于100

输入保证这6个数中至少存在一个奇数和一个偶数

输出
输出为一行,输出最大的奇数与最小的偶数之差的绝对值

思路:1. 不分奇偶直接冒泡降序排序
2. 找出第一个奇数和最后一个偶数,求差

#include 
using namespace std;
int main() {
	int f[6];
	for (int i = 0; i < 6; i++) {
		cin >> f[i];
	}
	for (int i = 0; i < 6; i++) {
		for (int j = 0; j < 6 - i - 1; j++) {
			if (f[j + 1] > f[j]) {
				int tmp = f[j];
				f[j] = f[j + 1];
				f[j + 1] = tmp;
			}
		}
	}
	int a = 0;
	for (int i = 0; i < 6; i++) {
		if (f[i] % 2 != 0) {
			a = f[i];
			break;
		}
	}
	int b = 0;
	for (int j = 5; j >= 0; j--) {
		if (f[j] % 2 == 0){
			b = f[j];
			break;	
		}
	}
	if(a-b > 0)
	    cout << a - b << endl;
	else
	    cout << b - a << endl;	
}

编程题#5:分离整数的各个数位
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

注意: 总时间限制: 1000ms 内存限制: 65536kB

描述
从键盘输入一个任意的三位整数,要求正确地分离出它的百位、十位和个位数,并分别在屏幕上输出,输出采用每行输出一个数的方式,不带其它符号。

输入
一个任意的三位整数

输出
一个任意的三位整数

#include 
using namespace std;
int main() {
	int n;
	cin >> n;
	int a = n / 100;
	int b = (n - 100 * a) / 10;
	int c = n - 100 * a - 10 * b;
	cout << "百位为:" << a << "\n" << "十位为:" << b << "\n" << "个位为:" << c << endl;
}

你可能感兴趣的:(【Coursera 计算导论与C语言基础】苹果和虫子+最高分数+最大奇数与最小偶数差+分离整数的各个数位)