PAT|中國大學MOOC-翁愷-C語言程式設計習題集09-12
阿新 • • 發佈:2019-02-13
編寫一個程式,要求使用者輸入24小時制的時間,然後顯示12小時制的時間。
輸入格式:
輸入在一行中給出帶有中間的“:”符號(半形的冒號)的24小時制的時間,如12:34
表示12點34分。當小時或分鐘數小於10時,均沒有前導的零,如5:6
表示5點零6分。
提示:在scanf的格式字串中加入“:”,讓scanf來處理這個冒號。
輸出格式:
在一行中輸出這個時間對應的12小時制的時間,數字部分格式與輸入的相同,然後跟上空格,再跟上表示上午的字串“AM”或表示下午的字串“PM”。如“5:6 PM
”表示下午5點零6分。注意,在英文的習慣中,中午12點被認為是下午,所以24小時制的12:00
就是12小時制的12:0
PM
0:0 AM
。
輸入樣例:
21:11輸出樣例:
9:11 PM
#include <stdio.h> int main() { int hour, min; scanf("%d:%d", &hour, &min); if (hour >= 13&&hour<24) { printf("%d:%d PM", hour-12, min); } else if (hour == 12) { printf("%d:%d PM", hour , min); } else { printf("%d:%d AM", hour, min); } return 0; }
03-4. 成績轉換(15)
本題要求編寫程式將一個百分制成績轉換為五分製成績。轉換規則:
大於等於90分為A;小於90且大於等於80為B;小於80且大於等於70為C;小於70且大於等於60為D;小於60為E。輸入格式:
輸入在一行中給出1個整數的百分制成績。
輸出格式:
在一行中輸出對應的五分製成績。
輸入樣例:90輸出樣例:
A
#include <stdio.h> int main() { int num; scanf("%d", &num); if (num >= 90) { printf("A"); } else if (num >= 80 && num < 90) { printf("B"); } else if (num >= 70 && num < 80) { printf("C"); } else if (num >= 60 && num < 70) { printf("D"); } else { printf("E"); } return 0; }
04-0. 求符合給定條件的整數集(15)
給定不超過6的正整數A,考慮從A開始的連續4個數字。請輸出所有由它們組成的無重複數字的3位數。
輸入格式:
輸入在一行中給出A。
輸出格式:
輸出滿足條件的的3位數,要求從小到大,每行6個整數。整數間以空格分隔,但行末不能有多餘空格。
輸入樣例:2輸出樣例:
234 235 243 245 253 254 324 325 342 345 352 354 423 425 432 435 452 453 523 524 532 534 542 543#include <stdio.h>
int main()
{
int count, num, i, j, k;
scanf("%d", &num);
count = 0;
for (i = num; i <= num + 3; i++)
{
for (j = num; j <= num + 3; j++)
{
for (k = num; k <= num + 3; k++)
{
if (i != j&&j != k&&i != k)
{
printf("%d%d%d", i, j, k);
count++;
}
if (count >=6)
{
printf("\n");
count = 0;
}
}
}
}
return 0;
}
04-1. 水仙花數(20)
水仙花數是指一個N位正整數(N>=3),它的每個位上的數字的N次冪之和等於它本身。例 如:153 = 13 + 53+ 33。 本題要求編寫程式,計算所有N位水仙花數。
輸入格式:
輸入在一行中給出一個正整數N(3<=N<=7)。
輸出格式:
按遞增順序輸出所有N位水仙花數,每個數字佔一行。
輸入樣例:3輸出樣例:
153 370 371 407#include <stdio.h>
int power(int x, int y);
int main()
{
int num, number, i,numbers,sum;
scanf("%d", &num);
for (i = power(10.0, num - 1); i < power(10.0, num); i++)
{
sum = 0;
number = i;
while (number>0)
{
sum = sum +power(number % 10,num);
number = number / 10;
}
if (sum == i)
{
printf("%d\n", i);
}
}
return 0;
}
int power(int x, int y)
{
int sum = 1;
int i;
for (i = 1; i <= y; i++)
{
sum = sum * x;
}
return sum;
}