我與C語言之第三戰!
阿新 • • 發佈:2018-12-05
我與C語言第三戰之num1:將陣列A中的內容和陣列B中的內容進行交換。(陣列一樣大)
首先定義兩個陣列用以存放元素,為了更直觀的看到陣列內容進行了交換,先將之前定義的兩個陣列內容分別打印出來,然後利用for迴圈和中間變數,進行兩個陣列間元素的交換,最後進行列印即可。具體程式程式碼和執行結果如下:
#include <stdio.h> #include <stdlib.h> int main() { int a[5] = {1,2,3,4,5}; int b[5] = {6,7,8,9,10}; int i, t; printf("陣列a的元素為:\n"); for (i = 0; i < 5; i++) { printf("%d ",a[i]); } printf("\n"); printf("陣列b的元素為:\n"); for (i = 0; i < 5; i++) { printf("%d ",b[i]); } printf("\n"); printf("交換後陣列a和b的元素分別為:\n"); for (i = 0; i < 5; i++) { t = a[i]; a[i] = b[i]; b[i] = t; } printf("陣列a的元素為:\n"); for (i = 0; i < 5; i++) { printf("%d ", a[i]); } printf("\n"); printf("陣列b的元素為:\n"); for (i = 0; i < 5; i++) { printf("%d ", b[i]); } printf("\n"); system("pause"); return 0; }
我與C語言第三戰之num2:計算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
首先會想到用迴圈來完成,但並不是每個運算子都是“+”號,觀察表示式,能得知它的正負順序是一正一負一正一負……,將迴圈變數當作分母,再定義一個常量n,令n=-n,並將表示式放在迴圈中,就能保證值的正負。要注意的是:計算結果肯定是小數,所以定義變數sum時,不能用int,要用double。具體程式程式碼及執行結果如下:
#include <stdio.h> #include <stdlib.h> int main() { int m = 0; int n = 1; double sum = 0.0; for (m = 1; m < 101; m++) { sum += n*(1.0 / m); n = -n; } printf("sum is %f\n", sum); system("pause"); return 0; }
我與C語言第三戰之num3:編寫程式數一下 1到 100 的所有整數中出現多少次數字9。
首先考慮個位為9,怎麼計算?取餘即可,其次考慮十位為9,利用計算機除法運算的取整特性,即可求出十位有9的數字,值得注意的是,此題中99只計算了一次,所以對最後計算出來的9的個數要加1。具體程式程式碼及執行結果如下:
#include <stdio.h> #include <stdlib.h> int main() { int m = 0; int n = 0; printf("1到100中有9的數字分別為:\n"); for (m = 1; m < 101; m++) { if (m % 10 == 9) { printf("%d ", m); n++; } else if (m/10==9) { printf("%d ", m); n++; } } n += 1; printf("\n1到100中9的個數為:%d\n", n); system("pause"); return 0; }
個人感悟:拿到題目,對題目的理解不夠深入,經過檢視監視視窗,發現了程式碼的漏洞及不足,再接再厲!