1.數據類型
(1)本題要求編寫程序,計算4個整數的和與平均值。題目保證輸入與輸出均在整型范圍內。
輸入格式:輸入在一行中給出4個整數,其間以空格分隔。
輸出格式:在一行中按照格式“Sum = 和; Average = 平均值”順序輸出和與平均值,其中平均值精確到小數點后一位。
輸入樣例:1 2 3 4
輸出樣例:Sum = 10; Average = 2.5
(2)對於輸入的兩個整數,按照要求輸出其和差積商。
輸入格式:在一行內輸入兩個不超過100的非負整數a和b,中間以一個空格間隔,且保證b不為0。
輸出格式:共四行,格式是:
[a] + [b] = [a+b]
[a] - [b] = [a-b]
[a] * [b] = [a*b]
[a] / [b] = [a/b]
其中,帶有方括號的內容(如[a]
、[b]
、[a+b]
等)表示相應整數或運算結果的值,在輸出時要用實際的值代替。並且:如果a能夠被b整除,那么a/b應輸出為整數格式,否則a/b輸出為帶兩位小數的格式。提示:注意表達式中的空格。
輸入樣例1:
6 3
輸出樣例1:
6 + 3 = 9
6 - 3 = 3
6 * 3 = 18
6 / 3 = 2
輸入樣例2:
8 6
輸出樣例2:
8 + 6 = 14
8 - 6 = 2
8 * 6 = 48
8 / 6 = 1.33
#include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("a + b = %d\na - b = %d\na * b = %d\n",a+b,a-b,a*b);
if(a%b==0){
printf("%d",a/b);
}else{
printf("a / b = %.2f",((double)a/(double)b));
}
return 0;
}
//前面定義了int,printf時要換成double。
//注意:printf中不是輸出a+b,而是所輸入的數值%d+%d!!!
(3)世界上不同國家有不同的寫日期的習慣。比如美國人習慣寫成“月-日-年”,而中國人習慣寫成“年-月-日”。下面請你寫個程序,自動把讀入的美國格式的日期改寫成中國習慣的日期。
輸入格式:輸入在一行中按照“mm-dd-yyyy”的格式給出月、日、年。題目保證給出的日期是1900年元旦至今合法的日期。
輸出格式:在一行中按照“yyyy-mm-dd”的格式給出年、月、日。
輸入樣例:03-15-2017
輸出樣例:2017-03-15
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d-%d-%d",&a,&b,&c);
printf("%04d-%02d-%02d",c,a,b);
return 0;
}
//輸出兩位數
(4)有時候人們用四位數字表示一個時間,比如1106表示11點零6分。現在,你的程序要根據起始時間和流逝的時間計算出終止時間。讀入兩個數字,第一個數字以這樣的四位數字表示當前時間,第二個數字表示分鍾數,計算當前時間經過那么多分鍾后是幾點,結果也表示為四位數字。當小時為個位數時,沒有前導的零,即5點30分表示為530。注意,第二個數字表示的分鍾數可能超過60,也可能是負數。
輸入格式:輸入在一行中給出2個整數,分別是四位數字表示的起始時間、以及流逝的分鍾數,其間以空格分隔。注意:在起始時間中,當小時為個位數時,沒有前導的零,即5點30分表示為530;流逝的分鍾數可能超過60,也可能是負數。
輸出格式:輸出四位數字表示的終止時間。題目保證起始時間和終止時間在同一天內。
輸入樣例:
1120 110
輸出樣例:
1310
我寫的錯誤代碼:
#include<stdio.h>
int main()
{
int a,b,c,d,h,m;
scanf("%d %d",&a,&b);
h=b/60;//要加的小時
m=b%60;//要加的分鍾
c=(m+a%100)/60+h+a/100;//最終總的小時
d=(m+a%100)%60;//最終剩下的分鍾
if(c>24){
printf("%d",(c-24)*100+d);
}else{
printf("%d",c*100+d);
}
return 0;
}
別人寫的正確代碼:
#include<stdio.h>
int main()
{
int hour,min,temp;
scanf("%d %d", &hour, &min);
temp = hour/100*60 + hour%100 + min;
temp = temp/60*100 + temp%60;
printf("%d", temp);
return 0;
}
(轉載於:github.com/MuziJin)
//這道題其實轉變思路,不是把輸入的分鍾數加到時間上,而是把時間統統轉變成分鍾,對於分鍾的正負就不必再考慮,就簡單多了。
感覺我的腦子真的不好使,分析解決問題的能力差,其實很簡單的一道題,被我弄的那么復雜,而且經常想的很復雜,恐怕我是真的沒救了,嗷嗷嗷啊~
雖然條條大路通羅馬,我走的不僅是繞死的,而且還走錯了→→
簡直要了我的老命!
(5)本題要求根據某城市普通出租車收費標准編寫程序進行車費計算。具體標准如下:起步里程為3公里,起步費10元;超起步里程后10公里內,每公里2元;超過10公里以上的部分加收50%的回空補貼費,即每公里3元;營運過程中,因路阻及乘客要求臨時停車的,按每5分鍾2元計收(不足5分鍾則不收費)。
輸入格式:輸入在一行中給出輸入行駛里程(單位為公里,精確到小數點后1位)與等待時間(整數,單位為分鍾),其間以空格分隔。
輸出格式:在一行中輸出乘客應支付的車費(單位為元),結果四舍五入,保留到元。
輸入樣例1:2.6 2
輸出樣例1:10
輸入樣例2:5.1 4
輸出樣例2:14
輸入樣例3:12.5 9
輸出樣例3:34