您的位置:首页 > 其它

coursera 中计算概论的第四周 B-03作业

2014-03-20 23:06 513 查看
1.

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

using namespace std;

int main()
{
//一箱n个苹果,虫子每x小时吃掉一个苹果,经过y小时以后剩余的苹果
int n,x,y;
cin >> n >> x >> y ;
int eaten;//eaten为虫子吃掉的苹果
if(y/x)
eaten=y/x+1;//虫子吃剩的也不要了
else
eaten=y/x;//刚好吃完
cout << n-eaten << endl;
return 0;
}


2.

/*
*描述
一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘
米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。(设PAI=3.14159)
*输入
输入有一行:分别表示小圆桶的深h,和底面半径r,单位都是厘米。
*输出
输出也只有一行,大象至少要喝水的桶数。
*/
/*
浮点运算的误差
判断小数是否整除
如果整除
n=x/y;那么y*n==x+THRES&&y*n==x-THRES ;
*/
#include <iostream>
#define PAI 3.14159
#define THRES 0.00001
using namespace std;

int main()
{
int h,r;//桶深h,底面半径r
//计算一桶水的体积
cin >> h >> r ;
double volum;
int totle =20*1000;//统一为ml,可能能减小误差
volum=PAI * r *r *h;
int  n=totle/volum;//n为需要的桶的数量
if(n==0)
{
n=1;
}
else if(n*volum==totle+THRES&&n*volum==totle-THRES)
{
n=(int)totle/volum;
}
else
n=totle/volum+1;
cout << n << endl;
return 0;
}


3.1

/*
描述
孙老师 讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的
最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮
孙老师解决这个问题吗?
输入
输入为二行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.第二行
是这n个学生的成绩
输出
输出一行,即最高的成绩
样例输入
5
85 78 90 99 60
样例输出
99
*/
//使用数组实现
#include <iostream>

using namespace std;

int main()
{
int n;//一共有n个分数
cin >> n;
int record
;
for (int i=0;i<n;i++)
{
cin >> record[i];
}
//使用冒泡排序 降序
int i,j;
for(i=0;i<n;i++)
for(j=1;j<n-i-1;j++)
{
if(record[j]>record[j-1])
{
int temp =record[j];
record[j]=record[j-1];
record[j-1]=temp;
}
}
cout << record[0] << endl;
return 0;
}


3.2

/*
描述
孙老师 讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的
最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮
孙老师解决这个问题吗?
输入
输入为二行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.第二行
是这n个学生的成绩
输出
输出一行,即最高的成绩
样例输入
5
85 78 90 99 60
样例输出
99
*/
//不用数组实现
#include <iostream>

using namespace std;

int main()
{
int n;//n为分数的个数
cin >> n ;
int max=0;//temp来存储分数
for(int i=0;i<n;i++)
{
int temp=0;
cin >> temp;
if(max<temp)
{
max=temp;
}
}
cout << max << endl;
return 0;
}

4.
/*
描述
输入6个正整数,且这6个正整数中至少存在一个奇数和一个偶数。
设这6个正整数中最大的奇数为a,最小的偶数为b,求出|a-b|的值
输入
输入为一行,6个正整数,且6个正整数都小于100
输入保证这6个数中至少存在一个奇数和一个偶数
输出
输出为一行,输出最大的奇数与最小的偶数之差的绝对值
样例输入
1 2 3 4 5 6
样例输出
3
*/
//不使用数组实现
#include <iostream>

using namespace std;

int main()
{
int maxodd=0,minEven=100;//maxodd为最大的奇数,mineven为最小的偶数
int i;
for(i=0;i<6;i++)
{
int temp;
cin >> temp ;
if(temp%2)//temp为奇数
{
if(temp>maxodd)
maxodd=temp;
}
else//temp为偶数
{
if(temp<minEven)
minEven=temp;
}
}
if(maxodd>minEven)
cout << maxodd-minEven << endl;
else
cout << minEven-maxodd << endl;
return 0;
}


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

输入
一个任意的三位整数
输出
一个任意的三位整数
样例输入
123
样例输出
1
2
3
*/
#include <iostream>

using namespace std;

int main()
{
int num;//输入一个数
cin >> num;
cout << num/100 << endl;
cout << (num%100)/10 << endl;
cout << num%10 << endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: