coursera 中計算概論的第四周 B-03作業
阿新 • • 發佈:2019-02-11
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[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個學生的成績
輸出
輸出一行,即最高的成績
樣例輸入
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;
}