【程式16】
題目:輸入兩個正整數m和n,求其最大公約數和最小公倍數。
分析:首先介紹一種方法叫輾轉相除法(歐幾里得演算法);
從原理可以看出,有兩個迴圈:
1.最後的餘數要等於0;——>對應乙個while(r !=0)的迴圈
2.除數和餘數的輾轉相除。——>替換變數反覆相除的迴圈
因為最後有用的只有b和r的值,所以可以將b的值賦給a,再將r的值賦給b。
#include
int main(int argc, char* argv)
//這樣就保證了被除數num2 比 除數num1 大
while(num1 !=0)
printf("兩個數的最大公約數是:%d",num2);
//最大公約數*最小公倍數 = 兩個數的乘積;
printf("兩個數的最小公倍數是:%d",(m*n) / num2);
【程式17】
題目:輸入一行字元,分別統計出其中英文本母、空格、數字和其它字元的個數。
#include
int main(int argc, char* argv)
else
if((c >'0') && (c < '9'))
else
if(c ==' ')
else
others ++;
}printf("字母有:%d,數字有:%d,空格有:%d,其他字元有:%d",letters,digits,spaces,others);
}
注意:是單引號不是雙引號!還有字母判斷要加上等於號!
執行結果:
【程式18】
題目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是乙個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加由鍵盤控制。
#include
#include
int main(int argc, char* argv)
else
}printf("the total is %d",sum);
}
作為乙個小白,這個題目真是糾結了好久,每次都是輸出相加的最後乙個數。糾結了好久要怎樣才能把前面的數給加上放到sum裡面,不過終於在我仔細的分析之下給編出來了。之前寫的是:
for(i = 0;i < n; i++)//其中n為相加的個數
錯誤在於,沒有把前面的數給加進去。(其實除了這個方法,我覺得創乙個陣列儲存每次的數,然後再加起來也行。)
執行結果:
C語言每日一練7 18
a類 b類2.請編寫乙個程式,使用者輸入乙個十進位制數,將其轉換為二進位制並輸出。3.下列程式的執行結果為 include void func int x int main return 0 以下為答案 1.d 硬碟檔案系統除了fat還有ntfs u盤檔案系統 光碟檔案系統 2.include in...
20170927 C語言每日一練
斐波那契數列 小兔子問題 程式11 題目 有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?include long f1,f2 int i f1 f2 1 for i 1 i 20 i f1 f1 f2 f2 f1 ...
C 每日一練(STL Queue)
queue 佇列 queue 是乙個容器介面卡 container adaptor 型別,被特別設計用來執行於fifo first in first out 場景,在該場景中,只能從容器一端新增 insert 元素,而在另一端提取 extract 元素。1 有何用?queue 提供了一系列成員函式用...