C語言 錯題本
文章目錄
- C語言 錯題本
- 7
- 7月11號
- 整數求逆--==掌握==
- 7月12號
- 求符合給定條件的整數集
- 水仙花數
- 打印九九口訣表--==掌握==
- 統計素數并求和--==掌握==
- 7月13號
- 湊硬幣
- 前n項和(一加一減)
- 最大公約數
- 7月14號
- 正序整數分解
- 7月17號
- 簡單計算器
- 21
- 7月26號
- 求符合給定條件的整數集
- 水仙花數
- 旨在將遇到的不會的, 難的, 錯的編程題目寫下來, 然后通過刷錯題的方式以掌握此題.
- 首先將錯題弄懂, 可以是看視頻講解, 可以是網上查找資料, 也可以是問別人.
- 其次將錯題寫在此處, 并作一個標記, 即
7
, 表示的是第七天要再寫一次此題. - 第七天可以順利的完成, 此題就算是掌握了, 就可以將它作一個標記, 即
掌握
, 如果沒能夠完成, 那么就要再次弄懂它, 然后做上標記,21
, 在第二十一天的時候再寫一遍. - 最后寫完這題標記
掌握
.
7
7月11號
今天7月5號, 7月11號寫此題
整數求逆–掌握
-
輸入一個正整數, 輸出逆序的數, 結尾的0逆序之后要求處理掉.
-
分析:
- 1.輸入num
- 2.每次循環把最后一位取出來
- 3.剩余位重新賦值給num
- 4.將個個位數合成一個整數進行輸出
- 5.進入循環的條件num>0
#include <stdio.h>int main() {//輸入int num;scanf("%d", &num);//每次循環把最后一位取出來int ret = 0; //結果變量while (num > 0) {//表每一位的變量int digit = 0;digit = num % 10;//剩余位重新賦值給numnum /= 10;每次都將取出來的最后一位輸出//printf("%d", digit);//讓個個位數合成一個整數 // 123 1 2 3// 0+3=3 3*10=30 30+2=32 32*10=320 320+1=321ret += digit;ret *= 10;}ret /= 10;printf("%d ", ret);return 0;
}
7月12號
今天7月6號, 7月12號寫此題
求符合給定條件的整數集
-
給定不超過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
- 輸入格式:
水仙花數
-
水仙花數是指一個N位正整數(N>=3),它的每個位上的數字的N次冪之和等于它本身。
例如:153 = 1^3 + 5^3+ 3^3。本題要求編寫程序,計算所有N位水仙花數.- 輸入格式:
輸入在一行中給出一個正整數N(3<=N<=7)。 - 輸出格式:
按遞增順序輸出所有N位水仙花數,每個數字占一行。 - 輸入樣例:
3 - 輸出樣例:
153
370
371
407
- 輸入格式:
打印九九口訣表–掌握
- 下面是一個完整的下三角九九口訣表:
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,輸出從11到NN的部分口訣表。
- 輸入格式:
輸入在一行中給出一個正整數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
- 輸入格式:
-
分析:
- 1.輸入n
- 2.定義循環控制變量i和j, i是外層循環, j是內層循環(外層循環在每行中是不變的, 而內層循環是遞增的, 但是在內層循環做完之后, 外層循環就會自增1)
- 3.判斷, 當i*j<=9時, 三個空格, >=10, 兩個空格
#include <stdio.h>int main() {//輸入nint n;scanf("%d", &n);//外層循環for (int i = 1; i <= n; i++) {//內層循環控制變量初始化int j = 1;//內層循環for (int j = 1; j <= i; j++) {//每行中, 外層循環控制變量i是不變的, 而內層循環控制變量j是遞增的printf("%d*%d=%d", j, i, j * i);//判斷if (j * i <= 9) {printf(" ");}else if (j * i >= 10) {printf(" ");}}//外層循環循環一次, 則換行一次printf("\n");}return 0;
}
統計素數并求和–掌握
-
本題要求統計給定整數M和N區間內素數的個數并對它們求和。
- 輸入格式:
輸入在一行中給出2個正整數M和N(1<=M<=N<=500)。 - 輸出格式:
在一行中順序輸出M和N區間內素數的個數以及它們的和,數字間以空格分隔。 - 輸入樣例:
10 31 - 輸出樣例:
7 143
- 輸入格式:
-
分析:
- 1.輸入mn
- 2.定義計數和求和變量
- 3.外層循環產生m到n之間的數
- 4.內層循環產生2到每次外層循環產生的這個數-1之間的數
- 5.在內層循環中, 每次讓外層的那個數試除內層的這些數, 如果能除盡, 直接停止
- 6.如果內層的這些數試除完后都除不盡則說明這個數是素數, count++, sum += 這個數
#include <stdio.h>int main() {//輸入mnint m, n;scanf("%d %d", &m, &n);//計數和求和變量int count = 0;int sum = 0;//外層循環產生m到n之間的數//定義接收這些數的變量int num1 = m;while (num1 <= n) {//判斷素數的變量int isPrime = 1;//處理1if (num1 == 1) {isPrime = 0;}//內層循環產生2到num1-1之間的數//接收這些數的變量int num2 = 0;for (num2 = 2; num2 < num1; num2++) {//num1試除num2if (num1 % num2 == 0) {isPrime = 0;break;}}if (isPrime == 1) {count++;sum += num1;}num1++;}printf("%d %d", count, sum);return 0;
}
7月13號
今天7月7號, 7月13號寫此題
湊硬幣
- 如何用一角兩角和五角的硬幣湊出10元以下的金額? 提示: 排列組合
前n項和(一加一減)
- f(n) = 1/1 - 1/2 + 1/3 - 1/4 + … + 1/n
最大公約數
- 輸入兩個數a和b,輸出它們的最大公約數(是指兩個或多個整數共有約數中最大的一個),提示:枚舉法和輾轉相除法
7月14號
今天7月9號, 7月14號寫此題, 因為周一休息, 所以改成周天寫
正序整數分解
-
輸入一個自然數, 正序輸出它的每一位數字
- 輸入: 13425
- 輸出: 1 3 4 2 5
7月17號
今天7月11號, 7月17號寫此題
簡單計算器
-
模擬簡單運算器的工作。假設計算器只能進行加減乘除運算,運算數和結果都是整數,4種運算符的優先級相同,按從左到右的順序計算。
- 輸入格式:
輸入在一行中給出一個四則運算算式,沒有空格,且至少有一個操作數。遇等號”=”說明輸入結束。 - 輸出格式:
在一行中輸出算式的運算結果,或者如果除法分母為0或有非法運算符,則輸出錯誤信息“ERROR”。 - 輸入樣例:
1+2*10-10/2= - 輸出樣例:
10
- 輸入格式:
21
7月26號
今天是7月12號, 7月26號再次寫此題, 也就是兩個星期之后
求符合給定條件的整數集
-
給定不超過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
- 輸入格式:
水仙花數
-
水仙花數是指一個N位正整數(N>=3),它的每個位上的數字的N次冪之和等于它本身。
例如:153 = 1^3 + 5^3+ 3^3。本題要求編寫程序,計算所有N位水仙花數.- 輸入格式:
輸入在一行中給出一個正整數N(3<=N<=7)。 - 輸出格式:
按遞增順序輸出所有N位水仙花數,每個數字占一行。 - 輸入樣例:
3 - 輸出樣例:
153
370
371
407
- 輸入格式: