PAT|中國大學MOOC-翁愷-C語言程式設計習題集13-16
下面是一個完整的下三角九九口訣表:
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
本題要求對任意給定的1位正整數N,輸出從1*1到N*N的部分口訣表。
輸入格式:
輸入在一行中給出一個正整數N(1<=N<=9)。
輸出格式:
輸出下三角N*N部分口訣表,其中等號右邊數字佔4位、左對齊。
輸入樣例:4輸出樣例:
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16
#include <stdio.h> int main() { int i, j,num; scanf("%d", &num); for (i = 1; i <= num; i++) { for (j = 1; j <= i; j++) { printf("%d*%d=%-4d", j, i, i*j); } printf("\n"); } return 0; }
04-3. 統計素數並求和(20)
本題要求統計給定整數M和N區間內素數的個數並對它們求和。
輸入格式:
輸入在一行中給出2個正整數M和N(1<=M<=N<=500)。
輸出格式:
在一行中順序輸出M和N區間內素數的個數以及它們的和,數字間以空格分隔。
輸入樣例:10 31輸出樣例:
7 143
#include <stdio.h> int main() { int i, j, num, flag, sum,num1,num2,count; sum = 0; count = 0; scanf("%d%d", &num1, &num2); for (i = num1; i <= num2; i++) { flag = 0; for (j = 2; j < i; j++) { if (i%j == 0) { flag = 1; break; } } if (flag == 0 && i != 1) { count++; sum = sum + i; } } printf("%d %d",count, sum); return 0; }
04-4. 猜數字遊戲(15)
猜數字遊戲是令系統隨機產生一個100以內的正整數,使用者輸入一個數對其進行猜測,需要你編寫程式自動對其與隨機產生的被猜數進行比較,並提示大了(“Too big”),還是小了(“Too small”),相等表示猜到了。如果猜到,則結束程式。程式還要求統計猜的次數,如果1次猜出該數,提示“Bingo!”;如果3次以內猜到該數,則提示“Lucky You!”;如果超過3次但是在N(>3)次以內(包括第N次)猜到該數,則提示“Good Guess!”;如果超過N次都沒有猜到,則提示“Game Over”,並結束程式。如果在到達N次之前,使用者輸入了一個負數,也輸出“Game Over”,並結束程式。
輸入格式:
輸入第一行中給出2個不超過100的正整數,分別是系統產生的隨機數、以及猜測的最大次數N。隨後每行給出一個使用者的輸入,直到出現負數為止。
輸出格式:
在一行中輸出每次猜測相應的結果,直到輸出猜對的結果或“Game Over”則結束。
輸入樣例:58 4 70 50 56 58 60 -2輸出樣例:
Too big Too small Too small Good Guess!
#include <stdio.h> int main() { int num1, num2, guess,i; scanf("%d%d",&num1, &num2); for (i = 1; i <= num2; i++) { scanf("%d", &guess); if (guess < 0) { printf("Game Over\n"); break; } else { if (guess < num1) { printf("Too small\n"); } else if (guess == num1) { break; } else { printf("Too big\n"); } } } if (guess > 0) { if (i == 1) { printf("Bingo!\n"); } else if (i > 1 && i <= 3) { printf("Lucky You!\n"); } else if (i > 3 && i <= num2) { printf("Good Guess!\n"); } else { printf("Game Over\n"); } } return 0; }
05-0. 求序列前N項和(15)
時間限制400 ms 記憶體限制65536 kB 程式碼長度限制8000 B 判題程式Standard作者張彤彧(浙江大學)本題要求編寫程式,計算序列 2/1+3/2+5/3+8/5+... 的前N項之和。注意該序列從第2項起,每一項的分子是前一項分子與分母的和,分母是前一項的分子。
輸入格式:
輸入在一行中給出一個正整數N。
輸出格式:
在一行中輸出部分和的值,精確到小數點後2位。題目保證計算結果不超過雙精度範圍。
輸入樣例:20輸出樣例:
32.66#include <stdio.h>
int main()
{
int num,i;
double sum, z, x, y,s;
x = 2;
y = 1;
sum = 0;
scanf("%d", &num);
for (i = 1; i <= num; i++)
{
z = x / y;
s = x;
x = x + y;
y = s;
sum = sum + z;
}
printf("%.2lf", sum);
return 0;
}