JBTALKS.CC

标题: [練習]編程練習... [打印本页]

作者: Super-Tomato    时间: 2007-11-1 12:35 AM
标题: [練習]編程練習...
剛剛去挖了以前一些論壇大家所提出的問答題目


1. 1~9 取 4 個數字做排列組合(即 toto 的全打)

2. 1 ~ 100 的陣列做最有效的排列

3. 取得 1 ~ 100 內的質數(只能被自己整除)

4. 使用者輸入一個 int, 然後計算出該數目的乘法組合, 如 45 = 5 x 3 x 3

5. 使用者輸入一行字母, 算出每個字母出現的次數

6. 使用者輸入個 n 數字, 然後列出個有 n 行的菱形
作者: nanacloset    时间: 2007-11-1 04:15 PM
這些題目, 在工作後, 好像不什麼實際用途.. = =
除了訓練自己的 "邏輯".. 應該沒有 '客戶' 會要這種 '產品' 八
作者: Super-Tomato    时间: 2007-11-1 06:33 PM
原帖由 nanacloset 于 2007-11-1 04:15 PM 发表
這些題目, 在工作後, 好像不什麼實際用途.. = =
除了訓練自己的 "邏輯".. 應該沒有 '客戶' 會要這種 '產品' 八




呵呵, 那麼你就錯了, 程式就是需要邏輯性, 使用編程軟體任誰都可以在一兩個星期內就摸熟.
沒有良好的邏輯思維, 那麼老手和新手的差別在哪呢?


也許目前你所寫的都是小程式, 但當你到大公司的時候, 程式缺乏邏輯性, 有效性, 重複利用算法等時候, 大概都會被丟到小小角落無法參與大方案. 我工作這些年看到很多畢業的新人每次交給他們的方案, 交回來的幾乎都是網絡上東抓西抓的程式碼或函數. 最後還是要和幾位同事一起東改西改的, 當然也有很多能夠把這些程式碼抓來然後很好利用的新人. 更不可能把一些大工廠的程式丟給他們負責, 工廠的電腦處理數據可是非常龐大的, 寫不好的邏輯常導致運算過慢除錯又麻煩而且會造成他們非常大的損失. 公司是否一朝變鳳凰也就要靠這些程式設計師了.


練習呢就是刺激自己的思維邏輯更加純熟, 大家的寫法更加可以找出自己的錯誤, 如果只是用看的和用嘴說的, 那麼就不需要程式設計師了. 客戶也就是不會這點也看不到或不了解程式運行和演算的邏輯, 我們才有生意做. 那麼微軟也可以推出個聲控調用WINAPI就可以製做出想要的軟體, 而軟體也就不會有bug也不用再推出下一版本, 這樣不是大家都可以省下更多的錢和清閒的過日子嗎?
作者: goodday    时间: 2007-11-4 10:36 PM
忙 我会回来 写的

番茄 讲的是事实, 没人会懂我们要想个 逻辑有几难。
老板只会要那个这个。

我们要
构造,支架,流程,测试,写文件,控制,延伸,技术水平support
不时要update 自己的 篇写的 能力

要看看 人月---〉man power

也许我的功力 不够

等到出来的东西,没marketing 又卖不出。。。。。
悲哀。。。。。

[ 本帖最后由 goodday 于 2007-11-4 10:49 PM 编辑 ]
作者: 磨刀狂徒    时间: 2007-11-5 12:24 AM
帖子留下吧。。。过几天编写,用c写。。。
goodday的感受,以前深有体会。。。
痛苦的倒不是写不出,而是写出来后的修改,兼容稳定还有简洁效率问题。。。
最痛苦的就是兼容和效率了。。。每每就是想不到该怎么缩短代码了。。。汗

[ 本帖最后由 磨刀狂徒 于 2007-11-5 12:28 AM 编辑 ]
作者: vampcheah    时间: 2007-11-5 09:23 AM
这些很久以前都玩过了
最近发现有个东西也好玩
unicode 和 non-unicode

先把text 转换成hex 或 binary
再把binary 转成 string 或 hex
重要的是 要用function 来显示 GB2312 和 UTF-8
玩了 2 天终于摸熟了

PS: 在做这些习题时,突然发现都是用recursive 的 方法解决的 。。。

[ 本帖最后由 vampcheah 于 2007-11-6 10:05 AM 编辑 ]
作者: goodday    时间: 2007-11-7 03:04 PM
原帖由 vampcheah 于 2007-11-5 09:23 AM 发表
这些很久以前都玩过了
最近发现有个东西也好玩
unicode 和 non-unicode

先把text 转换成hex 或 binary
再把binary 转成 string 或 hex
重要的是 要用function 来显示 GB2312 和 UTF-8
玩了 2 天终于摸 ...


unicode 你讲讲下我也忘咯
好久没用咯
我学了,就一直还给书本。。。。。。。。
vb 里 太方便咯
给了我一个懒的理由


[ 本帖最后由 goodday 于 2007-11-7 03:07 PM 编辑 ]
作者: vampcheah    时间: 2007-11-7 03:13 PM
我是用asp 做的
[不适当词语] asp support 会不会太差了点。。。
但是某方面又比php 好。。。
真是一言难尽。。。
作者: goodday    时间: 2007-11-9 09:48 AM
原帖由 vampcheah 于 2007-11-7 03:13 PM 发表
我是用asp 做的
[不适当词语] asp support 会不会太差了点。。。
但是某方面又比php 好。。。
真是一言难尽。。。


我也是asp转来的,我在也不会用asp 咯
我很爱 .net
很划算咯
学 asp.net(webform) 送 windows application(winform)
现在的windows 多咯,有市场咯
如果有一天mac 爬头咯, 我只能哭笑不得。

php 也很强,我当年学php4时  
因为没找到强IDE(integrated development environment),当时有了,没被我找到
现在的zend studio很方便啦
dreamweaver  ,  
所以我和microsoft 相爱咯
哈哈哈哈   

vampcheah 衰仔 mana saya punya teh talek????
msn add me  goodday_chai@hotmail.com
want claim back my teh~~~~
new robison got lot new shop havent be yet

作者: vampcheah    时间: 2007-11-9 02:01 PM
原帖由 goodday 于 2007-11-9 09:48 AM 发表


我也是asp转来的,我在也不会用asp 咯
我很爱 .net
很划算咯
学 asp.net(webform) 送 windows application(winform)
现在的windows 多咯,有市场咯
如果有一天mac 爬头咯, 我只能哭笑不得。

php  ...

.Net 嘛 不会
asp 刚刚学,即学即用。 哈哈,很多东西还是要问google 大哥
php 管他什么ide 我都是用editplus/ notepad 的。 有颜色就好。

robinson 哦东西[不适当词语] 贵
最近PK 了, 趁着股票跌买了些基金。现在穷到裤子穿洞。。。。
作者: goodday    时间: 2007-11-9 02:36 PM
那种?? 我觉得现在的通货膨胀率来算,基金回稳。股票就要看得小心点。
你什么?〉?
作者: vampcheah    时间: 2007-11-9 07:54 PM
原帖由 goodday 于 2007-11-9 02:36 PM 发表
那种?? 我觉得现在的通货膨胀率来算,基金回稳。股票就要看得小心点。
你什么?〉?

我是买基金啦
大众基金,我是代理嘛。自己不玩怎能卖客人。不过还好我买2个2个都赚钱的。哈哈。。。。可以说是我幸运吧。
作者: 磨刀狂徒    时间: 2007-11-9 10:30 PM
标题: 回复 #12 vampcheah 的帖子
我也买了两年大众基金,打算明年才卖掉套现。。。数目小小罢了。。。
作者: vampcheah    时间: 2007-11-11 01:18 PM
原帖由 磨刀狂徒 于 2007-11-9 10:30 PM 发表
我也买了两年大众基金,打算明年才卖掉套现。。。数目小小罢了。。。

买了2年以上的赚到不少了啦。 我看只要不是bond fund 的话,应该会有30-40% 吧。
怎么突然变成谈基金。。。转回来咯
作者: tensaix2j    时间: 2007-12-30 02:24 AM
第一题。
看起来简单,做起来不简单。 做了蛮久。


int permutationPrint(char *s , int mask , int c, char *p, char *co ){
        int i;
        if (c>0){
                for (i=0;i < strlen(s); i++)
                {
                        if ( !(mask & (1<<i)) ) {
                                *p=i[s];
                                permutationPrint(s, mask | (1<< i), c - 1, p+1,co );
                        }
                }
        }
        else {
                *p=0;
                puts(co);
        }
}


main(){
        char p[5];
        permutationPrint("123456789",0,4,p,p);
}
作者: tensaix2j    时间: 2007-12-30 02:25 AM
第三题
这个就很简单

#include <math.h>
int isPrime(int x){
        int i;
        double k = sqrt(x* 1.0);
        for (i = 2 ; i <= k ; i++){
                if (!(x % i)) {
                        return 0;
                }
        }
        return 1;
}

main(){
        int i;
        for (i=1;i<=100;i++){
                printf("%d %s %s", i, isPrime(i)? "is":"is not","prime\n");
        }
}
作者: tensaix2j    时间: 2007-12-30 02:42 AM
//第四
int factorPrint(int x){
       
        int i;
        double k = sqrt(x* 1.0);
        for (i = 2 ; i <= k ; i++){
                if (!(x % i)) {
                        printf("%d X ",i);
                        factorPrint(x/i);
                        return 1;
                }
        }
       
        printf("%d ",x);
        return 0;
       
}
作者: tensaix2j    时间: 2007-12-30 02:53 AM
第五
int countCharPrint(char *s, char *alphabet){
        int i;
        for (i=0; i < strlen(s); i++){
                alphabet[i[s]]++;
        }
       
        for (i=0;i< 256; i++){
                if (alphabet[i] > 0) {
                        printf("%c %d\n", i, alphabet[i]);
                }               
        }
       
}
作者: tensaix2j    时间: 2007-12-30 02:55 AM
第六。。
什么是 菱形
作者: tensaix2j    时间: 2007-12-30 03:47 AM
第二

int mergeSort( int *arr , int length) {
       
        if (length > 1) {
                       
                int mid = length / 2;
               
                int i,l,r;
                int *left=(int *)malloc(mid * sizeof(int));
                int *right=(int *)malloc( (mid + (length%2? 1:0)) * sizeof(int));
                               
                for (i=0; i< mid; i++) {
                        left[i] = arr[i];
                        right[i]= arr[i+mid];
                }
               
                right[mid + (length% 2? 1:0) - 1] = arr[length - 1 ];
       
                mergeSort(left,mid);
                mergeSort(right,mid + (length % 2? 1:0));
               
                for (i=0,l=0,r=0;i< length; i++){
                        arr[i]= left[l]< right[r]? left[l++]:right[r++] ;
                }

                free(left);
                free(right);
        }
}

[[i] 本帖最后由 tensaix2j 于 2007-12-30 11:18 AM 编辑 [/i]]
作者: .风花雪月.    时间: 2008-3-12 02:52 PM
你们都在写什么?em0002


可以教教我吗?.........................我很有兴趣.....
作者: 我是大猪头    时间: 2008-3-13 11:04 AM
我也是不会!!初学者!!才刚学完HTML!! ~ em0015




欢迎光临 JBTALKS.CC (https://jbtalks.my/) Powered by Discuz! X2.5