2009年12月31日 星期四

加入KMOL團隊(限本系大學部)

對KMOL研究課題有興趣嗎?

從現在開始學習就有機會 大學+研究所只要五年就能畢業唷!

請在下面留言或是直接至本研究室詢問,

我們能讓您更深入了解本團隊。

2009年12月28日 星期一

fscanf讀取檔案內的值

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char w[10];

    int n;

    FILE *f = fopen("input.txt","r");

    fscanf(f,"%s", w);

    n = atoi(w);

    printf("%d\n", n);

    return 0;
}

期末考

期末考不是我出的~~~
期末考是老師出的~~~
而且是老師改答案的~~~
沒有帶回家這個選項~~~
加油...你們可以的>____<

部落格很多祕技要看阿~阿~~~

2009年12月22日 星期二

期中考分數(重新校對)

期中分數

成績公開結束。

5X分接近60的有補個兩三分讓你上壘。

2009年12月21日 星期一

01201程式

#include <stdio.h>

void print_zero(int width, int height, int line_num, int br_or_not);
void print_one(int width, int height, int line_num, int br_or_not);
void print_two(int width, int height, int line_num, int br_or_not);

int main()
{
    int i, width, height;
    width=9;
    height=9;
    for (i=1;i<=height;i++)
    {
        print_zero(width,height,i,0);
        printf(" ");
        print_one(width,height,i,0);
        printf(" ");
        print_two(width,height,i,0);
        printf(" ");
        print_zero(width,height,i,0);
        printf(" ");
        print_one(width,height,i,1);
    }
    return 0;
}

void print_zero(int width, int height, int line_num, int br_or_not)
{
    int i,j;
    j=0;
    // print first line
    if (line_num == 1 || line_num == height)
    {
        // print the whole line
        printf("o");
        for (i=0;i < width-2;i++)
        {
            printf("-");
        }
        printf("o");
        if (br_or_not == 1)
        {
            printf("\n");
        }
        else
        {
            // continue
        }
    }
    else
    {
        // repeat print position 1 and the last one

        for (j=0;j < width;j++)
        {
            if(j==0 || j==width-1)
            {
                printf("|");
            }
            else
            {
                printf(" ");
            }
        }
        if (br_or_not == 1)
        {
            printf("\n");
        }
        else
        {
            // continue
        }
    }
}

void print_one(int width, int height, int line_num, int br_or_not)
{
    int i, middle;
    middle = width/2;
    for (i=0;i<height;i++)
    {
        for (i=0;i<width;i++)
        {
            if (i==middle)
            {
                printf("|");
            }
            else
            {
                printf(" ");
            }
        }

        if (br_or_not == 1)
        {
            printf("\n");
        }
        else
        {
            // continue
        }
    }
}

void print_two(int width, int height, int line_num, int br_or_not)
{
    int i,j;
    j=0;
    // print first line
    if (line_num == 1 || line_num == height||line_num == (height/2)+1)
    {
        // print the whole line
        printf("o");
        for (i=0;i < width-2;i++)
        {
            printf("-");
        }
        printf("o");
        if (br_or_not == 1)
        {
            printf("\n");
        }
        else
        {
            // continue
        }
    }
    else
    {
        // repeat print position 1 and the last one

        for (j=0;j < width;j++)
        {
            if(j==width-1 && line_num <= (height/2))
            {
                printf("|");
            }
            else if(j==0 && line_num > (height/2))
            {
                printf("|");
            }
            else
            {
                printf(" ");
            }
        }
        if (br_or_not == 1)
        {
            printf("\n");
        }
        else
        {
            // continue
        }
    }
}

2009年12月15日 星期二

練習題1

//試著使用迴圈寫出47-44-41-38-35.....-m=sum的等差程式,
//且m可以由使用者輸入。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,m,sum;
    sum=47;
    i=sum;
    printf("輸入m值:");
    scanf("%d",&m);
    do
    {
        i-=3;
        sum-=i;
    }while(i>m);
    printf("\n47-44-41-38-35.....-%d=%d",m,sum);
    return 0;
}


這是我值宿舍TA時別班同學問的考題,
Close 網路、Close Book、Close go home、Close cheat 、Close Computer、Close 醬
聽說這題他們全班陣亡...

2009年12月14日 星期一

第二次考試答案

第一題:


      /*由1981非閏年作為起始點,
        閏年的數量:(yaer-1981)/4
        到現在共(year-1981)年數
        1981年是從星期四開始所以+3
        將這些空格全部加起來是總共空的格數
        除以7得到的餘數就是該年一開始的空格數量*/
        space=(((year-1981)/4)+(year-1981)+3)%7;

      //然後將"日一二三四五六"改成"一二三四五六日"。





第二題:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int sum,num,solve;
    printf("請輸入數字:");
    scanf("%d",&sum);
    while(1)
    {
        printf("\n請輸入運算子:");
        scanf("%d",&solve);
        if(solve==0)
        {
            break;
        }
        printf("\n請輸入數字:");
        scanf("%d",&num);
        if(solve==1)
        {
            //sum=sum+num;
            sum+=num;
        }
        else if(solve==2)
        {
            //sum=sum*num;
            sum*=num;
        }
        else
        {
            printf("Error\n");
        }
    }
    printf("答案:%d",sum);

    return 0;
}



第三題:


#include <stdio.h>
#include <stdlib.h>

int main()
{
    int password=123;
    int x,a;
    char word[30];
    for(a=0;a<3;a++)
    {
        printf("\nEnter password number:");
        scanf("%s",word);
        x=atoi(word);
        if(x==password)
        {
            printf("\nSuccess!!");
            break;
        }
        else
        {
            if (a==2)
            {
                printf("\nFail!!");
            }
            else
            {
                printf("\nFail!! \nonce again!!");
            }
        }
    }
}

第二次考試

第一題:

請參考年曆方程式,
可輸入1981年以後的年份,
印出該年的年曆,
而且每週的第一天從星期一開始。


第二題:

請寫一計算機,

能不斷輸入數字並且計算+*
能先輸入一個數字後,
然後當使用者
輸入1時計算相加
輸入2時計算相乘
輸入0時得出結果
....

結果:

請輸入數字:5
請輸入運算子:1
請輸入數字:8
請輸入運算子:2
請輸入數字:3
請輸入運算子:0
答案:39


第三題:

請寫一個程式,
能夠判斷密碼是否正確,
當輸入正確的密碼則印出密碼正確,
當輸入錯誤的密碼或輸入的不是整數,
則印出密碼錯誤請重新輸入,
並且當輸入錯誤三次時離開程式,

輸入文字型態password number,
將文字型態轉換成數字型態作判斷,
最多判斷三次。

2009年12月8日 星期二

空格數量

      /*由1981非閏年作為起始點,
        閏年的數量:(yaer-1981)/4
        到現在共(year-1981)年數
        1981年是從星期四開始所以+4
        將這些空格全部加起來是總共空的格數
        除以7得到的餘數就是該年一開始的空格數量*/
        space=(((year-1981)/4)+(year-1981)+4)%7;

任意輸出年曆...(有陰謀的@__@)

//這個程式不見得是最好的寫法,歡迎同學務必把它改得更好。

#include <stdio.h>
#include <stdlib.h>
int ouput(int space,int month);

int main()
{
    int m,month,year,space,bissextile=0;
    while(1)
    {
        printf("----------------------------\nYear:");
        scanf("%d",&year);
        //當輸入小於1980年時跳出程式,
        if(year<1980)
        {
            printf("Can not be calculated!!\n");
            break;
        }
      /*想辦法寫出該年一開始空格數量的計算式,
        先不公佈我的寫法自己先想想看。*/
        space=???????????;
        //判斷該年是否為閏年
        if((year-1980)%4==0)
            bissextile=1;
        //判斷不同月份的大小月
        for(m=1;m<=12;m++)
        {
            if(m==4||m==6||m==9||m==11)
            {
                month=30;
            }
            else if(m==2&&bissextile==1)
            {
                month=29;
            }
            else if(m==2&&bissextile==0)
            {
                month=28;
            }
            else
            {
                month=31;
            }
            printf("\nMonth %d :\n",m);
            //呼叫先前打過的月曆程式
            ouput(space,month);
            //先計算出下個月該空幾格
            space=(space+month)%7;
        }
    }
    system("pause");
    return 0;
}

int ouput(int space,int month)
{
    int i,day=1;
    printf(" SUN MON TUE WED THU FRI SAT\n");
    for(i=1;i<=month+space;i++)
    {
        if(i<=space)
        {
            //每個日期的四格間距
            printf("    ");
        }
        else
        {
            // (i 除以7的餘數)不等於 0
            if((i%7)!=0)
            {
                printf("%4d",day);
            }
            else
            {
                printf("%4d\n",day);
            }
            day++;
        }
    }
    printf("\n");
    return 0;
}


  ︿ ︿
(#゜Д゜)ノシ 噓...這是個秘密:
第二次考試會考年曆~(都洩題了你(妳)還考不好挖嘛恩災怎麼辦才好了啦>△<")
當然第二次考試答案一定不會是照抄就答對的,
這題你要能夠有能力自己寫出來,
不然你(妳)還是沒辦法答對唷~XDDDD+

2009年12月7日 星期一

餘數應用在印出日曆

//請於與期中考題比較,
//可發現 j 變數都不需要使用了,
//而改採%餘數來計算。

#include <stdio.h>
#include <stdlib.h>

int main()
{
  
    int i,space=2,month=31,day=1;
    printf(" SUN MON TUE WED THU FRI SAT\n");
    for(i=1;i<=month+space;i++)
    {
        if(i<=space)
        {
            printf("    ");
        }
        else
        {
            // (i 除以7的餘數)不等於 0
            if((i%7)!=0)
            {
                printf("%4d",day);
            }
            else
            {
                printf("%4d\n",day);
            }
            day++;
        }
    }
    return 0;
}

餘數運算子:%

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int x,x2;
    printf("輸入數字:");
    scanf("%d",&x);
    x2=x%5;
    printf("%d除5的餘數為:%d",x,x2);

    return 0;
}


/*

結果:

輸入數字:11
11除5的餘數為:1

*/


補充 :
0%5 → 0
1%5 → 1
2%5 → 2
3%5 → 3
4%5 → 4
5%5 → 0
6%5 → 1
7%5 → 2
.............................

轉換整數型態 atoi(word)

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int x;
    char word[30]; //最多只能讀30個字母組成的單字

    while(1)
    {
        printf("\nEnter any number:");
        //scanf("%d/n",&x);
        //為了因應使用者可能輸入帶有字元的變數,
        //因此改用字串接收輸入,然後再利用 atoi 將字串轉為整數
        scanf("%s",word);
        // 呼叫 atoi()將字串轉為整數
        x=atoi(word);

        if(x<=50 && x>0)
        {
            printf("%d is >0 and <= 50",x);
        }
        else if(x<=100 && x>50)
        {
            printf("%d is >50 and <= 100",x);
        }
        else if(x>100)
        {
            printf("%d is >100",x);
        }
        else
        {
            printf("%d is <=0 or not integer",x);
        }
    }
    return 0;
}