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

1.

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

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 
#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 

using namespace std;

int main()
{
    int n;//一共有n个分数
    cin >> n;
    int record[n];
    for (int i=0;i> record[i];
    }
    //使用冒泡排序 降序
    int i,j;
    for(i=0;irecord[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 

using namespace std;

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

4.

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

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(tempminEven)
        cout << maxodd-minEven << endl;
    else
        cout << minEven-maxodd << endl;
    return 0;
}

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

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

using namespace std;

int main()
{
    int num;//输入一个数
    cin >> num;
    cout << num/100 << endl;
    cout << (num%100)/10 << endl;
    cout << num%10 << endl;
    return 0;
}


你可能感兴趣的:(coursera 中计算概论的第四周 B-03作业)