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

来源:互联网 发布:校园社区源码 编辑:程序博客网 时间:2024/05/17 18:19

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.00001using 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个学生的成绩输出输出一行,即最高的成绩样例输入585 78 90 99 60样例输出99*///使用数组实现#include <iostream>using namespace std;int main(){    int n;//一共有n个分数    cin >> n;    int record[n];    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个学生的成绩输出输出一行,即最高的成绩样例输入585 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样例输出123*/#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;}


0 0
原创粉丝点击