創作內容

1 GP

【寫程式教學】新手篇c/c++範例-1

作者:♙♲⚙\~O_O~/⚙♲♙│2017-03-27 13:19:14│巴幣:2│人氣:469
有時候沒範例可以參考難以理解,這篇就是個範例


雖然題目是自己想的,但也不排除是我潛意識根據以前寫過的題目,或略做修改而成。
然後很好,這邊沒有字串,沒有switch

/*

題目:給定 N 個一位數的相異數字(>0),印出所有這些數字可組成(一個數字用一次)的 N 位數

輸入:
第一行給定數字 N (N<10) 代表接下來有幾行
接下來 N 行,每一行包含一個數字

輸出:
把所有可組成的 N 位數印出來

範例輸入:
3
2
3
5

範例輸出:
235
253
325
352
523
532

*/

#include <stdio.h>
void permutation(const int *nums,int *curr,int *used,const int numberOfNums,const int ith)
{
    if(numberOfNums<=ith)
    {
        for(int x=0;x<ith;x++) printf("%d",curr[x]);
        printf("\n");
        return;
    }
    for(int x=0;x<numberOfNums;x++)
    {
        if(used[x]) continue;
        curr[ith]=nums[x];
        used[x]=1;
        permutation(nums,curr,used,numberOfNums,ith+1);
        used[x]=0;
    }
}
int main()
{
    int n;
    scanf("%d",&n); // scanf 要填位址給他
    int numbers[n],current[n];
    int used[n];
    for(int x=0;x<n;x++) used[x]=0;
    for(int x=0;x<n;x++) scanf("%d",numbers+x); // numbers+x 是指以 numbers[0] 的位址為起點(0), +x 個 numbers[0] 的型別 (這裡即int)
    permutation(numbers,current,used,n,0);
    return 0;
}

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=3524917
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:寫程式|教學|新手|C|C++

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

1喜歡★agold404 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【寫程式教學】新手篇4-... 後一篇:【寫程式教學(?)】新手...

追蹤私訊切換新版閱覽

作品資料夾

a86189642祝福
看到的人會變得幸福哦!看更多我要大聲說14小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】