[程設習題] C Primer Plus Ch6 #13

13.   請試著寫一個程式,先讓它建立二個雙精準數的陣列,各含有8個元素。然後讓使用者依序鍵入8個值到第一個陣列。讓程式各別去計算元素累計的總合,將其結果放入第二個陣列。舉例來說,第2個陣列第4項元素應該等於第1個陣列的前4項元素的總合。第2個陣列第5項元素應該等於第1個陣列的前5項元素的總合。(你可以使用巢狀迴圈來完成它,第2個陣列第5項元素等於第2個陣列第4項元素加上第1個陣列第5項元素,你可以不使用巢狀迴圈,單只用單迴圈也可以完成之。)最後,利用迴圈去顯示這二個陣列,第1個陣列其個別元素顯示成一行,第2

個陣列對齊它顯示在它下方成一行。



 

[程設習題] C Primer Plus Ch6 #4

4.     寫一個程式讓使用者打入大寫英文字母,然後使用巢狀迴圈做個金字塔像這樣:


   A


  ABA


 ABCBA


ABCDCBA



#include “stdafx.h”


#include <stdio.h>                                         //引入stdio.h


#include <stdlib.h>                                        //引入stdlib.h


int main(int argc, char* argv[])


{


     int ch=0, space_num=0, i,j;                          //宣告chspace_numij變數備用


     printf(“Please enter a english charectar(A-Z):”);


     scanf(“%c”, &ch);                                    //讓使用者輸入字元,指定到ch變數中


     space_num=ch-‘A’;                                    //算金字塔的第一行要有幾個空格


     for (i=0;i < ch-‘A’+1; i++)                          //FOR迴圈,從0開始到ch-A+1的值(金字塔有幾層),每次累加1


     {


           if (space_num-i != 0)                           //如果空格數是0就跳過


                printf(“%*c”,space_num-i,0);               //印出指定數量的空格(最少會有一個,由i去控制它)


           for (j=’A’;j <= ‘A’+i; j++)                         


                printf(“%c”,j);                            //印出A(i去控制的)字母的所有字元


           for (j=(‘A’+i)-1;j >= ‘A’; j–)                


                printf(“%c”,j);                            //往回印 (i去控制的)字母到A的所有字元


           printf(“\n”);                                   //印出換行


     }


     system(“PAUSE”);                                     //「按任意鍵繼續」的程式


     return 0;                                            //函數結束,傳回整數0並跳回原本呼叫的地方


}


 



 

程式再進化

看了一些畢專之後
心中有些想法
最近,又把面試考古題又再增加很多功能
目標是讓它能成為一個專業的資訊系統
要能稱為系統
當然也要費些功夫

————————————————————-


目前要增加的重點
1.把「關於我們」的部份將它補完


2.後台權限分配


3.解決考題新增完卻有誤
對不到資料的手動修正


4.增加最新公告、工作進度、修改記錄
(像現在打的這些)留言介面


5.修正瀏覽記數緩慢的問題
支援word、pdf等其它的格式



6.增加訪客回應、留言功能


7.寫完網站內容管理程式
並和面試考古題整合
(例如同後台、帳號、資源共享等等)


8.一些誤打的修正
9.搜尋功能加入縮小關健字查詢
增加模糊查詢程度,節省系統資源
10.改善網址傳遞掉字的問題


————————————————————-
說的比做的快…先忙碌去摟

[筆記]架伺服器步驟

設定BIOS斷電後復電迴歸後為自動開機
安裝Fedora Core Linux.
   計算與切割硬碟空間
   修改自動更新位址
   安裝新酷音,XAMPP(隨開機啟動)
   設定SSL連線


    設定安全性設定 Mysql
部落格Life type的安裝
    自訂網址設定,倒帳號程式
    上傳空間設定
    訂定部落格使用規範


做好防火牆的調校
做一些細部的設定
(例如定時寄報告給管理者等)
壓縮備份選相關設定


(選用)安裝流量分析等相關程式


 


webmail伺服器大略安裝與設定步驟
安裝MTA軟體(sendmail或postfix)


設定網域名,允許連接的IP
127.0.0.1->0.0.0.0  不可打入本機的IP

[筆記]LifeType下使用英文網址

在LifeType下要如何使用英文網誌網址,而不用數字網址(網誌ID)?
如:http://your.dominname/blog/username1
而不是:http://your.dominname/blog/1


首先,在建立使用者時,就要打入英文的帳號英文的網誌名稱
(網誌名稱之後可以改)


然後在LifeType下管理面版 »  全部站台管控 » 網址設定
做自訂網址的設定(請參考我的設定值)


就可以使用英文網址了


◎注意:很多管理者都會把LifeType灌在資料夾裡
而自訂網址的/blog/似乎拿不掉(會找不到網頁),
所以建議一開始灌就灌在網頁瀏覽的根目錄
要不然就會有http://your.dominname/blog/blog/的醜網址



以上如有錯誤,煩請留言更正之,謝謝。


 


以下是我在LifeType下管理面版 »  全部站台管控 » 網址設定  的設定值


request_format_mode
如果您設定為「一般網址」,那麼系統所呈現的網址,就會使用將參數以get方式傳入的一般方式。如果您選用「讓搜尋引擎易於搜尋的簡潔網址」,那麼就會讓網址變得簡潔,搜尋引擎也容易取得您網站上的內容,不過您的Apache伺服器必須要能夠接受.htaccess檔案中的覆寫設定。如果使用自訂網址,請調整下方的設定。
自訂網址


permalink_format
當使用自訂網址時,靜態連結網址格式。
/blog/{blogname}/cat_{catid}/post_{postid}/{year}{month}{day}$


category_link_format
當使用自訂網址時,網站連結分類網址格式。
/blog/{blogname}/cat_{catid}$


blog_link_format
當使用自訂網址時,網誌連結網址格式。
/user/{blogname}/{username}$


archive_link_format
當使用自訂網址時,文章彙整連結網址格式。
/blog/{blogname}/archives/{year}{month}{day}


user_posts_link_format
當使用自訂網址時,特定使用者發表的文章連結網址格式。
/user/{blogname}/{username}$


post_trackbacks_link_format
當使用自訂網址時,引用連結網址格式。
/blog/{blogname}/trackbacks/post_{postid}$


template_link_format
當使用自訂網址時,自訂靜態模版連結網址格式。
/blog/{blogname}/template/{templatename}$


album_link_format
當使用自訂網址時,資料夾連結網址格式。
/album/{blogname}/album_{albumid}$


resource_link_format
當使用自訂網址時,檔案連結網址格式。
/album/{blogname}/album_{albumid}/res_{resourceid}$


page_suffix_format
支援分頁時,加在網址尾端的字尾
/page_{page}
 


 

C Primer plus 程設習題使用須知

程式設計用書: C Primer plus 5/e (第五版)


程式撰寫環境:Microsoft Visual C++ 6.0


 


這就是程式設計課 C Primer plus 的章節後的習題,可以供同儕和學弟妹們作為參考


目的希望能幫到正在學程式設計的人一臂之力
幫助大家的學習


如果教授是同一位的話(吳教授),
他的上課規則大家都很清楚,不要抄襲別人的作業(網路上的也不行)


  


所以煩請先瞭解原理之後,再用自己的文字下去撰寫


不要直接複製貼上 (這樣會對程設這門課有相當扣分的效果)


Thx.


畢竟寫出來,學到的是我而不是你。程式設計是需要大腦思考的,
可以應付一時,但不能應付資訊人一個相當基礎的專業能力
除非你不想走資訊相關的這條路,就不要對自己開玩笑


 


還有一點注意事項
對於C程式語言的空白檔,為了適應不同環境而不盡相同
但是大方向(書上的寫法)是對的







int main (void)


{


………………


     一些指令(statement)


     ………………


 


     return 0;


}


像是到了Microsoft Visual C++ 6.0的空白檔就會變成







#include “stdafx.h”


 


int main(int argc, char* argv[])


{


………………


     一些指令(statement)


     ………………


 


     return 0;


}


 


到了Microsoft Visual Studio 2008 的空白檔就會變成







#include “stdafx.h”


 


int _tmain(int argc, _TCHAR* argv[])


{


………………


     一些指令(statement)


     ………………


 


     return 0;


}


 


說的都是同一件事情,但不能混用
不用雞婆幫他改
(但你打第一種樣式一定對)
切記除了瞭解空白檔的差異外,一定要再   #include <stdio.h>
要不然連printf() scanf()都不能用,請這件蠢事大家不要再犯 


    祝能盡早讀通書中的內容,能融會貫通


祝大家成功


 


 


 


 

[程設習題] C Primer Plus Ch5 #7

7.     寫一個程式讓它要求使用者打入一個浮點數,然後印出這數字的立方,用一個你自己設計的函數來做立方然後印出來。main()函數應該要把使用者所打的數字傳進去。



#include <stdio.h>                                              //引入stdio.h


#include <stdlib.h>                                             //引入stdlib.h


void cube(float k);                                             //宣稱一個cube函數的雛形


int main (void)


{


    float f1;                                                   //宣告浮點數f1


    printf(“Please enter a float number to be cubed:”);


    scanf(“%f”, &f1);                                           //讓使用者輸入,assignf1


    cube(f1);                                                   //呼叫cube函數,傳入f1變數


   


    system(“PAUSE”);                                            //「按任意鍵繼續」的程式,讓程式暫停


    return 0;                                                   //函數結束,傳回整數並跳回原本呼叫的地方


}


void cube(float k)                                              //宣稱一個cube函數,回傳值設為沒有回傳值,參數為浮點數的k變數


{


    printf(“The cube of number %.3f is %.3f\n”, k, kkk);      //印出傳入值kk的次方


}


 



 

[程設習題] C Primer Plus Ch5 #6

6.     現在你修改第五題的程式,讓它計算數字的平方和 (如果你喜歡,你也可以算第一天存$1元、第二天存$4元、第三天存$9元,以此類推,有多少錢?這樣會比較真實些)C語言沒有平方函數,你可以用nn取代之。


#include “stdafx.h”


#include <stdio.h>                         //引入stdio.h


#include <stdlib.h>                        //引入stdlib.h


int main(int argc, char argv[])


{


    int count=0,sum=0,times=0;             //宣告3個變數countsumtimes,個別初始為


    printf(“How many times that you want to calculate?\n”);


    scanf(“%d”, &times);                   //使用者輸入要執行的次數


    while(count++ < times)                 //迴圈判斷,count累加前是否小於times


       sum = sum+ count*count;             //sum加上count的平方


    printf(“sum = %d\n”, sum);


    system(“PAUSE”);                       //「按任意鍵繼續」的程式,讓程式暫停


    return 0;                              //函數結束,傳回整數並跳回原本呼叫的地方


}


 

[程設習題] C Primer Plus Ch5 #3

3.     請寫一個程式,它會問使用者要打入一個天數,然後它會轉換成幾星期又幾天。譬如,如果你要轉換18天能為2週又4天,顯示的樣子如下:


18 days are 2 weeks, 4 days.


使用while迴圈讓他能夠不斷的讓使用者要打入數字,當打入一個不是正數的值時(例如0-20)結束迴圈。


#include “stdafx.h”


#include <stdio.h>                                                         //引入stdio.h


#include <stdlib.h>                                                        //引入stdlib.h


int main(int argc, char* argv[])


{


    int day, state;                                                        //宣告2個變數daystate


    do{                                                                    //讓程式先執行,之後做while迴圈


       printf(“Please enter the number of days ( <=0 to quit):\n”);


       state=scanf(“%d”, &day);                                            //讓使用者打入天數,讓scanf()傳回有幾個資料輸入成功


       if (day > 0 && state == 1)                                          //判斷day是否大於0scanf()是否有資料


          printf(“%d days are %d weeks, %d days.\n”, day , day/7, day%7);  //印出運算結果


    }while(day > 0 && state == 1);


    printf(“\n”);                                                         


    system(“PAUSE”);                                                       //「按任意鍵繼續」的程式,讓程式暫停


    return 0;                                                              //函數結束,傳回整數並跳回原本呼叫的地方


}


 

[程設習題] C Primer Plus Ch4 #5

5.     寫一個程式,它會要求你打入你的名字,然後要求打入你的姓氏,要印出姓氏和名字在一行,還要在下一行印出姓氏和名字各有幾個字元。字元計數要靠貼齊姓氏(或名字)的尾端,像以下這樣:


 


Melissa Honeybee


7        8


 


接下來,印出同樣的內容,但字元計數要對齊每個名字的前面。


 


Melissa Honeybee


7         8


 


程式碼如下






#include “stdafx.h”


#include <stdio.h>                              //引入stdio.h


#include <stdlib.h>                             //引入stdlib.h


#include <string.h>                             //引入string.h檔,這樣才可以使用strlen函數


 


 


int main(int argc, char* argv[])


{


     char Fname[20],Lname[20];                  //宣告FnameLname變數,資料型態皆是元素的字元陣列


     int len_Fname,len_Lname;                   //宣告len_Fnamelen_Lname變數


 


     printf(“Please enter your first name:\n”); //印出字串


     scanf(“%s”, Fname);                        //等待輸入字串,assignFname字元陣列


     printf(“Please enter your last name:\n”); 


     scanf(“%s”, Lname);                        //等待輸入字串,assignLname字元陣列


     len_Fname = strlen(Fname);                 //計算Fname有多少字數,assignlen_Fname


     len_Lname = strlen(Lname);                 //計算Lname有多少字數,assignlen_Lname


     printf(“\n%s %s\n”, Fname, Lname);         //印出名字和姓氏


     printf(“%d %d\n”, len_Fname, len_Fname


               , len_Lname, len_Lname);         //印出計算結果,欄位的大小各由len_Fnamelen_Lname變數決定


     printf(“\n%s %s\n”, Fname, Lname);


     printf(“%-d %-d\n”, len_Fname, len_Fname


               , len_Lname, len_Lname);         //印出計算結果,欄位的大小各由len_Fnamelen_Lname變數決定,但數字靠左


     system(“PAUSE”);                           //「按任意鍵繼續」的程式,讓程式暫停


     return 0;


}