1. 請寫一個程式計算 10! ,也就是 10*9*8*...._1

#include <stdio.h>

int main()
{
    int i, sum = 1;
    for (i = 10; i >= 1; i--)
    {
        sum = sum * i;
    }
    printf("10!=%d\n", sum);

    return 0;
}

執行結果:

10!=3628800

2. 請寫一個程式印出九九乘法表。

#include<stdio.h>
//也可把int j,k寫在此行
int main() { // 別忘記main()
    int j,k;
    for(j=1;j<=9;j++) {
        for (k=1;k<=9;k++) {
            printf("%d x %d = %d\n",j,k,j*k);
        }
    }
}

執行結果:

1 x 1 = 1
1 x 2 = 2
…
9 x 9 = 81

3. 請檢查某數是否為質數?

範例: isPrime(17) => true

isPrime(int i) {
    int d;
    for(d=2;d<i;d++) {
        if ((i%d)=0) {
            return false;
        }
        else return true;
    }
}

int main() {
    printf("isPrime(17) = %d",isPrime(17));
}

Error:

lvalue required as left operand of assignment // =(指定)改成==(等於)
'printf' was not declared in this scope // 缺#include <stdio.h>

修改版本:

#include <stdio.h> // 別忘記#include <stdio.h>

isPrime(int i) {
    int d;
    for(d=2;d<i;d++) {
        if ((i%d)==0) { // =不是等於喔,==才是
            return false;
        }
        else return true;
    }
}

int main() {
    printf("isPrime(17) = %d",isPrime(17));
}

執行結果:

isPrime(17) = 1

4. 請在一個已經排序的陣列中之正確位置插入一個數值。(範例: insert([1,2,5,6,7], 3) => [1,2,3,5,6,7])

第一時間沒有想出來,於是跟憲億同學借檔案參考,但用Dev-C++編譯時出現問題!

根據錯誤的訊息,在網路上找到了這篇文章,文中教學更改專案中的編譯器選項,但這只是個小程式,因此直接更改全局設置


完工,正常執行!

5. 請算出某陣列的平均值?(範例: mean([1,2,3,4,5]) => 3)

#include <stdio.h>
mean(int a[],int length) {
    int sum = 0;
    for (int i=0;i<length;i++) { //別忘記i=0前面要定義型態 
        sum += a[i];
    }
    return sum/length;
}

main() {
    int a[] = {1,2,3,4,5};
    printf("mean([1,2,3,4,5]) = %d",mean(a,5));
}

執行結果:

mean([1,2,3,4,5]) = 3

9. 請用遞迴計算 n! = n_…_2*1 ?(範例: factorial(3) = 6)

#include <stdio.h> 

int factorial (int i) {
    if (i==1) {
        return 1;
    }
    else {
        return (i*factorial(i-1));
    }
}

int main () {
    printf("factorial(3)=%d",factorial(3));
}

執行結果:

factorial(3)=6

但有三題沒有解出來:

6.請寫一個函數計算兩矩陣相加?(範例: add([[1,2],[3,4]], [[1,1],[1,1]]) => [[2,3], [4,5]]) 7.寫一個程式把矩陣轉置。(範例:transpose([[1,2,3], [3,2,1]]) => [[1,3], [2,2], [3,1]]) 8.請寫一個函數可以傳回陣列的映射值?(範例:map(sqrt, [1,4,9])= [1,2,3])

results matching ""

    No results matching ""