7-1 求整數(shù)均值 (5分)
本題要求編寫程序欠气,計算4個整數(shù)的和與平均值。題目保證輸入與輸出均在整型范圍內(nèi)镜撩。
輸入格式:
輸入在一行中給出4個整數(shù)预柒,其間以空格分隔。
輸出格式:
在一行中按照格式“Sum = 和; Average = 平均值”順序輸出和與平均值袁梗,其中平均值精確到小數(shù)點后一位宜鸯。
輸入樣例:
1 2 3 4
輸出樣例:
Sum = 10; Average = 2.5
include<bits/stdc++.h>//萬能頭文件,平常不建議遮怜,用常規(guī)的有助于理解淋袖,人家競賽才用,我當(dāng)時不知道
using namespace std;
int main()
{
int a,b,c,d;
float sum ,average ;
cin>>a>>b>>c>>d;
sum=a+b+c+d;
average=sum/4;
cout<<"Sum = "<<sum<<"; Average = "<<fixed<<setprecision(1)<<average<<endl;
return 0;
}
7-2 計算存款利息 (5分)
本題目要求計算存款利息奈泪,計算公式為interest=money×(1+rate)
?year
???money适贸,其中interest為存款到期時的利息(稅前),money是存款金額涝桅,year是存期拜姿,rate是年利率。
輸入格式:
輸入在一行中順序給出三個正實數(shù)money冯遂、year和rate蕊肥,以空格分隔。
輸出格式:
在一行中按“interest = 利息”的格式輸出蛤肌,其中利息保留兩位小數(shù)壁却。
輸入樣例:
1000 3 0.025
輸出樣例:
interest = 76.89
include <bits/stdc++.h>
using namespace std;
int main()
{
double money, year, rate,a;
double interest;
cin>>money>>year>>rate;
a=(1+rate);
interest=money*pow(a,year)-money;
cout<<fixed<<setprecision(2)<<"interest = "<<interest<<endl;
return 0;
}
7-3 BCD解密 (5分)
BCD數(shù)是用一個字節(jié)來表達(dá)兩位十進(jìn)制的數(shù),每四個比特表示一位裸准。所以如果一個BCD數(shù)的十六進(jìn)制是0x12展东,它表達(dá)的就是十進(jìn)制的12。但是小明沒學(xué)過BCD炒俱,把所有的BCD數(shù)都當(dāng)作二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制輸出了盐肃。于是BCD的0x12被輸出成了十進(jìn)制的18了!
現(xiàn)在权悟,你的程序要讀入這個錯誤的十進(jìn)制數(shù)砸王,然后輸出正確的十進(jìn)制數(shù)。提示:你可以把18轉(zhuǎn)換回0x12峦阁,然后再轉(zhuǎn)換回12谦铃。
輸入格式:
輸入在一行中給出一個[0, 153]范圍內(nèi)的正整數(shù),保證能轉(zhuǎn)換回有效的BCD數(shù)榔昔,也就是說這個整數(shù)轉(zhuǎn)換成十六進(jìn)制時不會出現(xiàn)A-F的數(shù)字驹闰。
輸出格式:
輸出對應(yīng)的十進(jìn)制數(shù)。
輸入樣例:
18
輸出樣例:
12
include<bits/stdc++.h>//就是讓你把這個數(shù)變回16進(jìn)制
using namespace std;
int main(){
int a;
double s;
cin>>a;
s=a/16*10+a%16;
cout<<s<<endl;
return 0;
}
7-4 求圓面積 (5分)
輸入圓的半徑r撒会,求其面積并輸出疮方。
輸入格式:
輸入一個大于零的實數(shù),沒有任何附加字符茧彤。
輸出格式:
直接輸出結(jié)果骡显,結(jié)果是一個保留6位小數(shù)的實數(shù),沒有任何附加字符曾掂。
輸入樣例:
1
輸出樣例:
3.140000
include <bits/stdc++.h>
using namespace std;
int main()
{
double r ,s,pi;
cin>>r;
pi=3.140000;
s=pi*pow(r,2);
cout<<fixed<<setprecision(6)<<s<<endl;
return 0;
}
7-5 過幾天是星期幾 (5分)
告訴你今天是星期幾惫谤,算過幾天后是星期幾?
請編寫程序珠洗,輸入今天的星期數(shù)和所過的天數(shù)溜歪,計算并輸出未來這一天的星期數(shù)。
要求:用整數(shù) 0 ~ 6 表示星期日许蓖、星期一蝴猪、... 调衰、星期六。
注:輸入的整數(shù)和計算結(jié)果都在整型 int 表示范圍內(nèi)自阱。
輸入樣例
3 100
輸出樣例
5
include <bits/stdc++.h>
using namespace std;
int main()
{
long a,d,n;
cin>>a>>n;
d=(a+n)%7;
cout<<d<<endl;
return 0;
}
7-6 計算火車運行時間 (5分)
本題要求根據(jù)火車的出發(fā)時間和達(dá)到時間嚎莉,編寫程序計算整個旅途所用的時間立由。
輸入格式:
輸入在一行中給出2個4位正整數(shù)照激,其間以空格分隔,分別表示火車的出發(fā)時間和到達(dá)時間铆隘。每個時間的格式為2位小時數(shù)(00-23)和2位分鐘數(shù)(00-59)加派,假設(shè)出發(fā)和到達(dá)在同一天內(nèi)叫确。
輸出格式:
在一行輸出該旅途所用的時間,格式為“hh:mm”芍锦,其中hh為2位小時數(shù)竹勉、mm為2位分鐘數(shù)。
輸入樣例:
1201 1530
輸出樣例:
03:29
include<bits/stdc++.h>
using namespace std;
int main()
{
int h1,h2, m1,m2,a,b,t1,t2,c,d,e;
cin>>t1>>t2;
h1=t1/100;
h2=t2/100;
m1=t1%100;
m2=t2%100;
a=h2-h1;
b=m2-m1;
c=a*60+b;
d=c/60;
e=c%60;
cout<<setfill('0')<<setw(2)<<d<<":"<<setfill('0')<<setw(2)<<e<<endl;
return 0;
}
7-7 表格輸出 (5分)
本題要求編寫程序娄琉,按照規(guī)定格式輸出表格饶米。
輸入格式:
本題目沒有輸入。
輸出格式:
要求嚴(yán)格按照給出的格式輸出下列表格:
Province Area(km2) Pop.(10K)
Anhui 139600.00 6461.00
Beijing 16410.54 1180.70
Chongqing 82400.00 3144.23
Shanghai 6340.50 1360.26
Zhejiang 101800.00 4894.00
include<bits/stdc++.h>
using namespace std;
int main()
{
cout<<"------------------------------------"<<endl;
cout<<"Province Area(km2) Pop.(10K)"<<endl;
cout<<"------------------------------------"<<endl;
cout<<"Anhui 139600.00 6461.00"<<endl;
cout<<"Beijing 16410.54 1180.70"<<endl;
cout<<"Chongqing 82400.00 3144.23"<<endl;
cout<<"Shanghai 6340.50 1360.26"<<endl;
cout<<"Zhejiang 101800.00 4894.00"<<endl;
cout<<"------------------------------------"<<endl;
return 0;
}
7-8 求三角形面積 (5分)
輸入三角形的三邊長车胡,求其面積檬输。
輸入格式:
在一行中輸入能夠構(gòu)成三角形的3個實數(shù),3個數(shù)之間用逗號間隔匈棘。
輸出格式:
對每一組輸入丧慈,在一行中輸出面積值,結(jié)果保留兩位小數(shù)主卫,沒有附加字符逃默。
輸入樣例:
3,3,3
輸出樣例:
3.90
include<bits/stdc++.h>
using namespace std;
int main(){
double a,b,c,d;
char j,k;
double s,p;
cin>>a>>j>>b>>k>>c;
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
cout<<fixed<<setprecision(2)<<s<<endl;
return 0;
}
7-9 日期格式化 (5分)
世界上不同國家有不同的寫日期的習(xí)慣。比如美國人習(xí)慣寫成“月-日-年”簇搅,而中國人習(xí)慣寫成“年-月-日”完域。下面請你寫個程序,自動把讀入的美國格式的日期改寫成中國習(xí)慣的日期瘩将。
輸入格式:
輸入在一行中按照“mm-dd-yyyy”的格式給出月吟税、日、年姿现。題目保證給出的日期是1900年元旦至今合法的日期肠仪。
輸出格式:
在一行中按照“yyyy-mm-dd”的格式給出年、月备典、日异旧。
輸入樣例:
03-15-2017
輸出樣例:
2017-03-15
include<bits/stdc++.h>
using namespace std;
int main()
{
double y,m,d;
char j;
cin>>m>>j>>d>>j>>y;
cout<<setfill('0')<<setw(4)<<y<<"-"<<setfill('0')<<setw(2)<<m<<"-"<<setfill('0')<<setw(2)<<d;
return 0;
}
7-10 身份證校驗 (5分)
中國居民身份證校驗碼算法如下:
將身份證號碼前面的17位數(shù)分別乘以不同的系數(shù)。從第一位到第十七位的系數(shù)分別為:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2提佣。
將這17位數(shù)字和系數(shù)相乘的結(jié)果相加吮蛹。用加出來和除以11荤崇,取余數(shù)。
余數(shù)只可能有0-1-2-3-4-5-6-7-8-9-10這11個數(shù)字潮针, 其分別對應(yīng)的最后一位身份證的號碼為1-0-X-9-8-7-6-5-4-3-2术荤。余數(shù)和校驗碼的對應(yīng)關(guān)系可以用公式:m=(12-n) mod 11計算,其中mod為求余運算然低,m為校驗碼喜每,n為之前計算出來的余數(shù)务唐。如果之前計算出的余數(shù)是3雳攘,第18位的校驗碼就是9。如果余數(shù)是2那么對應(yīng)的校驗碼就是X枫笛,X實際是羅馬數(shù)字10吨灭。
例如:某男性的身份證號碼為【53010219200508011x】, 我們看看這個身份證是不是合法的身份證刑巧。首先我們得出前17位的乘積和【(57)+(39)+(010)+(15)+(08)+(24)+(12)+(91)+(26)+(03)+(07)+(59)+(010)+(85)+(08)+(14)+(1*2)】是189喧兄,然后用189除以11得出的結(jié)果是189/11=17----2,也就是說其余數(shù)是2啊楚。最后通過對應(yīng)規(guī)則就可以知道余數(shù)2對應(yīng)的檢驗碼是X吠冤。所以,可以判定這是一個正確的身份證號碼恭理。
請編寫一個程序拯辙,輸入身份證前17位后,計算并輸出最后的校驗碼颜价,
輸入格式:
前17位的每個數(shù)字分別輸入涯保,中間用空格間隔
輸出格式:
輸出校驗碼,如果校驗碼是10周伦,不必轉(zhuǎn)成X
輸入樣例:
5 3 0 1 0 2 1 9 2 0 0 5 0 8 0 1 1
include<bits/stdc++.h>
using namespace std;
int main()
{
int sum=0,i,c;
int gu[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
int shu;
for(i=0;i<17;i++)
{
cin>>shu;
sum=gu[i]*shu+sum;
}
c=sum%11;
switch(c)
{
case 0: cout<<"1"<<endl;break;
case 1: cout<<"0"<<endl;break;
case 2: cout<<"10"<<endl;break;
case 3: cout<<"9"<<endl;break;
case 4: cout<<"8"<<endl;break;
case 5: cout<<"7"<<endl;break;
case 6: cout<<"6"<<endl;break;
case 7: cout<<"5"<<endl;break;
case 8: cout<<"4"<<endl;break;
case 9: cout<<"3"<<endl;break;
case 10:cout<<"2"<<endl;break;
}
return 0;
}